Skip to content

sabracrolleton/saslprep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A common lisp implementation of unicode normalization and saslprep as required by RFC 4013 for usernames and passwords

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published