1
/* internal.h Internal header file for libidn.
2
* Copyright (C) 2002, 2003 Simon Josefsson
4
* This file is part of GNU Libidn.
6
* GNU Libidn is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
11
* GNU Libidn is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with GNU Libidn; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
#define STDC_HEADERS 1
35
//# define HAVE_ICONV 1
36
//# define LOCALE_WORKS 1
37
//# define ICONV_CONST
61
# if defined(WITH_DMALLOC) && WITH_DMALLOC
67
#include "stringprep.h"
71
/*! \mainpage GNU Internationalized Domain Name Library
73
* \section intro Introduction
75
* GNU Libidn is an implementation of the Stringprep, Punycode and IDNA
76
* specifications defined by the IETF Internationalized Domain Names
77
* (IDN) working group, used for internationalized domain names. The
78
* package is available under the GNU Lesser General Public License.
80
* The library contains a generic Stringprep implementation that does
81
* Unicode 3.2 NFKC normalization, mapping and prohibitation of
82
* characters, and bidirectional character handling. Profiles for iSCSI,
83
* Kerberos 5, Nameprep, SASL and XMPP are included. Punycode and ASCII
84
* Compatible Encoding (ACE) via IDNA are supported.
86
* The Stringprep API consists of two main functions, one for converting
87
* data from the system's native representation into UTF-8, and one
88
* function to perform the Stringprep processing. Adding a new
89
* Stringprep profile for your application within the API is
90
* straightforward. The Punycode API consists of one encoding function
91
* and one decoding function. The IDNA API consists of the ToASCII and
92
* ToUnicode functions, as well as an high-level interface for converting
93
* entire domain names to and from the ACE encoded form.
95
* The library is used by, e.g., GNU SASL and Shishi to process user
96
* names and passwords. Libidn can be built into GNU Libc to enable a
97
* new system-wide getaddrinfo() flag for IDN processing.
99
* Libidn is developed for the GNU/Linux system, but runs on over 20 Unix
100
* platforms (including Solaris, IRIX, AIX, and Tru64) and Windows.
101
* Libidn is written in C and (parts of) the API is accessible from C,
102
* C++, Emacs Lisp, Python and Java.
104
* The project web page:\n
105
* http://www.gnu.org/software/libidn/
107
* The software archive:\n
108
* ftp://alpha.gnu.org/pub/gnu/libidn/
110
* For more information see:\n
111
* http://www.ietf.org/html.charters/idn-charter.html\n
112
* http://www.ietf.org/rfc/rfc3454.txt (stringprep specification)\n
113
* http://www.ietf.org/rfc/rfc3490.txt (idna specification)\n
114
* http://www.ietf.org/rfc/rfc3491.txt (nameprep specification)\n
115
* http://www.ietf.org/rfc/rfc3492.txt (punycode specification)\n
116
* http://www.ietf.org/internet-drafts/draft-ietf-ips-iscsi-string-prep-04.txt\n
117
* http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-utf8-profile-01.txt\n
118
* http://www.ietf.org/internet-drafts/draft-ietf-sasl-anon-00.txt\n
119
* http://www.ietf.org/internet-drafts/draft-ietf-sasl-saslprep-00.txt\n
120
* http://www.ietf.org/internet-drafts/draft-ietf-xmpp-nodeprep-01.txt\n
121
* http://www.ietf.org/internet-drafts/draft-ietf-xmpp-resourceprep-01.txt\n
123
* Further information and paid contract development:\n
124
* Simon Josefsson <simon@josefsson.org>
126
* \section examples Examples
129
* \include example3.c
130
* \include example4.c
133
#endif /* _INTERNAL_H */