ldapstrprep

package module
v0.0.0-...-f013461 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2024 License: BSD-3-Clause Imports: 2 Imported by: 1

README

GoDoc CI

This library provides an implementation of Lightweight Directory Access Protocol Internationalized String Preparation (RFC 4518) in Go.

ldapstrprep

Examples

https://play.golang.org/p/2HFvgEOQ_nH

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyInsignificantSpaceHandling

func ApplyInsignificantSpaceHandling(src []rune) []rune

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

func ApplyInsignificantSpaceHandlingAny(substr []rune) []rune

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

func ApplyInsignificantSpaceHandlingFinal(substr []rune) []rune

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

func ApplyInsignificantSpaceHandlingInitial(substr []rune) []rune

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

func ApplyNumericStringInsignificantCharacterHandling(src []rune) []rune

ApplyNumericStringInsignificantCharacterHandling applies Insignificant Space Handling to src. https://tools.ietf.org/html/rfc4518#section-2.6.2

func ApplyTelephoneNumberInsignificantCharacterHandling

func ApplyTelephoneNumberInsignificantCharacterHandling(src []rune) []rune

ApplyTelephoneNumberInsignificantCharacterHandling applies Insignificant Space Handling to src. https://tools.ietf.org/html/rfc4518#section-2.6.3

func IsProhibited

func IsProhibited(src []rune) (b bool, err error)

IsProhibited reports whether src contains prohibited code points. https://tools.ietf.org/html/rfc4518#section-2.4

func MapCharacters

func MapCharacters(src []rune, caseFolding bool) []rune

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

func Normalize(r []rune) []rune

Normalize normalizes src to Unicode Form KC. https://tools.ietf.org/html/rfc4518#section-2.3

func Transcode

func Transcode(s string) []rune

Transcode transcodes string s to slices of runes. https://tools.ietf.org/html/rfc4518#section-2.1

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL