~vorlon/ubuntu/natty/libidn/multiarch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GNU Libidn API Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="GNU Libidn API Reference Manual">
<link rel="up" href="index.html" title="GNU Libidn API Reference Manual">
<link rel="prev" href="index.html" title="GNU Libidn API Reference Manual">
<link rel="next" href="libidn-idna.html" title="idna">
<meta name="generator" content="GTK-Doc V1.13 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="ch01.html" title="GNU Libidn API Reference Manual">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td> </td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GNU Libidn API Reference Manual</th>
<td><a accesskey="n" href="libidn-idna.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter" title="GNU Libidn API Reference Manual">
<div class="titlepage"><div><div><h2 class="title">
<a name="id2976074"></a>GNU Libidn API Reference Manual</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="libidn-idna.html">idna</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libidn-pr29.html">pr29</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libidn-punycode.html">punycode</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libidn-tld.html">tld</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libidn-stringprep.html">stringprep</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libidn-idn-free.html">idn-free</a></span><span class="refpurpose"></span>
</dt>
</dl></div>
<p>
GNU Libidn is a fully documented implementation of the Stringprep,
Punycode and IDNA specifications.  Libidn's purpose is to encode and
decode internationalized domain names.  The native C, C# and Java
libraries are available under the GNU Lesser General Public License
version 2.1 or later.
    </p>
<p>
The library contains a generic Stringprep implementation.  Profiles
for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included.
Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported.
A mechanism to define Top-Level Domain (TLD) specific validation
tables, and to compare strings against those tables, is included.
Default tables for some TLDs are also included.
    </p>
<p>
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.  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 TLD API
consists of one set of functions to extract the TLD name from a domain
string, one set of functions to locate the proper TLD table to use
based on the TLD name, and core functions to validate a string against
a TLD table, and some utility wrappers to perform all the steps in one
call.
    </p>
<p>
The library is used by, e.g., GNU SASL and Shishi to process user
names and passwords.  Libidn can be built into GNU Libc to enable a
new system-wide getaddrinfo flag for IDN processing.
    </p>
<p>
Libidn is developed for the GNU/Linux system, but runs on over 20 Unix
platforms (including Solaris, IRIX, AIX, and Tru64) and Windows.  The
library is written in C and (parts of) the API is also accessible from
C++, Emacs Lisp, Python and Java.  A native Java and C# port is
included.
    </p>
<p>
Also included is a command line tool, several self tests, code
examples, and more, all licensed under the GNU General Public License
version 3.0 or later.
    </p>
<p>
      The internal layout of the library, and how your application
      interact with the various parts of the library, are shown in
      <a class="xref" href="ch01.html#components" title="Figure 1. Components of Libidn">Figure 1, “Components of Libidn”</a>.
    </p>
<div class="figure">
<a name="components"></a><p class="title"><b>Figure 1. Components of Libidn</b></p>
<div class="figure-contents"><div><img src="libidn-components.png" alt="Components of Libidn"></div></div>
</div>
<br class="figure-break">
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.13</div>
</body>
</html>