Documentation ¶
Overview ¶
Package ldapstrprep implements string preparation algorithms described in RFC 4518 (Lightweight Directory Access Protocol Internationalized String Preparation), including errata (as of 2020-09)
Relations between RFC 4518 six-step process and functions are following:
1) Transcode:
func Transcode(s string) []rune
Note: To transcode non-Unicode string value to string, such as ut8string to string, is out of this function's scope. Use asn.1 or another package.
2) Map:
func MapCharacters(src []rune, caseFolding bool) []rune
3) Normalize
func Normalize(r []rune) []rune
4) Prohibit
func IsProhibited(src []rune) (b bool, err error)
5) Check bidi
No function is implemented. Because expected behaviour is the output string is same as the input string. So you do not need to do anything at this step.
6) Insignificant Character Handling
6-1) Insignificant Space Handling
6-1-1) For attribute values or non-substring assertion values:
func ApplyInsignificantSpaceHandling(src []rune) []rune
6-1-2) For substring assertion values:
6-1-2-1) For Initial
func ApplyInsignificantSpaceHandlingInitial(substr []rune) []rune
6-1-2-2) For Final
func ApplyInsignificantSpaceHandlingFinal(substr []rune) []rune
6-1-2-3) For Any
func ApplyInsignificantSpaceHandlingAny(substr []rune) []rune
6-2) numericString Insignificant Character Handling:
func ApplyNumericStringInsignificantCharacterHandling(src []rune) []rune
6-3) telephoneNumber Insignificant Character Handling:
func ApplyTelephoneNumberInsignificantCharacterHandling(src []rune) []rune
Index ¶
- func ApplyInsignificantSpaceHandling(src []rune) []rune
- func ApplyInsignificantSpaceHandlingAny(substr []rune) []rune
- func ApplyInsignificantSpaceHandlingFinal(substr []rune) []rune
- func ApplyInsignificantSpaceHandlingInitial(substr []rune) []rune
- func ApplyNumericStringInsignificantCharacterHandling(src []rune) []rune
- func ApplyTelephoneNumberInsignificantCharacterHandling(src []rune) []rune
- func IsProhibited(src []rune) (b bool, err error)
- func MapCharacters(src []rune, caseFolding bool) []rune
- func Normalize(r []rune) []rune
- func Transcode(s string) []rune
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyInsignificantSpaceHandling ¶
ApplyInsignificantSpaceHandling applies Insignificant Space Handling to src. src is attribute values or non-substring character. https://tools.ietf.org/html/rfc4518#section-2.6.1
func ApplyInsignificantSpaceHandlingAny ¶
ApplyInsignificantSpaceHandlingAny applies Insignificant Space Handling to substr. substr is substring assertion values and an any substring. https://tools.ietf.org/html/rfc4518#section-2.6.1
func ApplyInsignificantSpaceHandlingFinal ¶
ApplyInsignificantSpaceHandlingFinal applies Insignificant Space Handling to substr. substr is substring assertion values and a final substring. https://tools.ietf.org/html/rfc4518#section-2.6.1
func ApplyInsignificantSpaceHandlingInitial ¶
ApplyInsignificantSpaceHandlingInitial applies Insignificant Space Handling to substr. substr is substring assertion values and an initial substring. https://tools.ietf.org/html/rfc4518#section-2.6.1
func ApplyNumericStringInsignificantCharacterHandling ¶
ApplyNumericStringInsignificantCharacterHandling applies Insignificant Space Handling to src. https://tools.ietf.org/html/rfc4518#section-2.6.2
func ApplyTelephoneNumberInsignificantCharacterHandling ¶
ApplyTelephoneNumberInsignificantCharacterHandling applies Insignificant Space Handling to src. https://tools.ietf.org/html/rfc4518#section-2.6.3
func IsProhibited ¶
IsProhibited reports whether src contains prohibited code points. https://tools.ietf.org/html/rfc4518#section-2.4
func MapCharacters ¶
MapCharacters maps src based on RFC 4518 section-2.2. if caseFolding is true, then Table B.2 is mapped. https://tools.ietf.org/html/rfc4518#section-2.2
func Normalize ¶
Normalize normalizes src to Unicode Form KC. https://tools.ietf.org/html/rfc4518#section-2.3
func Transcode ¶
Transcode transcodes string s to slices of runes. https://tools.ietf.org/html/rfc4518#section-2.1
Types ¶
This section is empty.