Skip to content

Latest commit

 

History

History
72 lines (56 loc) · 4.47 KB

README.md

File metadata and controls

72 lines (56 loc) · 4.47 KB

saslprep

This package provides a common lisp implementation of unicode stringprep functions d Annex #15 found at http://www.unicode.org/reports/tr15/tr15-22.html as well as saslprep and stringprep functions required by https://tools.ietf.org/html/rfc5802 and found in:

This is a fork of a subset of work done by Takeru Ohta in 2010. Future work is intended to provide support for:

Implementation Notes

Usage

It has one major exported function:

  • (saslprep-normalize (str)

Saslprep-normalize example

    (saslprep-normalize "some-string-here")

Explanation of what saslprep-normalize adds to the process RFC 4013 and RFC 3454:

  1. First map non-ascii space characters to space #x0020

  2. Then delete characters that are commonly mapped to nothing

  3. KC Normalization as described in RFC 3454 Table 4

  4. Generate an error if there are any prohibited input characters

    • Non-ascii space characters (RFC 3454 Table c.1.2)
    • Ascii control characters (RFC 3454 Table c.2.1)
    • Non-ascii control characters (RFC 3454 Table c.2.2)
    • Private use characters (RFC 3454 Table c.3)
    • Non-character code points (RFC 3454 Table c.4)
    • Surrogate code points (RFC 3454 Table c.5)
    • Inappropriate for plain text characters (RFC 3454 Table c.6)
    • Inappropriate for canonical representation characters (RFC 3454 Table, C.7)
    • Change display properties or deprecated characters (RFC 3454 Table, C.8)
    • Tagging characters (RFC 3454 Table, C.9)
  5. Check for bidirectional strings (RFC 3454 Table Section 6) and ensure that there are no conflicting directions.

To Do list

Data Files

Other References