![]() | ![]() | GNU Libidn API Reference Manual | ![]() |
---|
GNU Libidn is an implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group, used for internationalized domain names. Currently the Nameprep, Kerberos 5 and XMPP Stringprep profiles are supported. It is available under the GNU Lesser General Public License.
The library contains a generic Stringprep implementation (including Unicode 3.2 NFKC normalization, table mapping of characters, and Bidirectional Character handling), a few Stringprep profiles, and an implementation of the functionality defined by Punycode and IDNA.
The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Each stringprep profile has a corresponding CPP macro. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form.
The library is used by forthcoming network applications to process user names and passwords before they are input to cryptographic operations. Libidn can be built into GNU Libc to enables a new flag to getaddrinfo() for system-wide IDN processing.
GNU Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows.
<<< GNU Libidn API Reference Manual | stringprep >>> |