Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Libidn 1.36 released

0 views
Skip to first unread message

Simon Josefsson

unread,
Jul 22, 2020, 12:30:06 PM7/22/20
to help-...@gnu.org, info...@gnu.org
GNU Libidn is a fully documented implementation of the Stringprep,
Punycode and IDNA specifications. Libidn's purpose is to encode and
decode internationalized domain name strings. There are native C, C#
and Java libraries.

Noteworthy changes since the last release (from NEWS file):

* Version 1.36 (released 2020-07-22)

** Fix unlikely memory leak in idna_to_unicode_4z4z().
Patch from Miroslav Lichvar <mlic...@redhat.com>.

** Check codepoint validity in punycode_decode() and punycode_decode().
Reported-by: Mike Schiffman (Farsight Security, Inc.).

** tld: Add U+00EF to .nl TLD table.
Reported by Trond Haugen <trond....@norid.no>.

** Indent code.

** Translation fixes.

** Update gnulib files.

** API and ABI is backwards compatible with the previous version.

The C 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.

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.

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.

Also included is a command line tool, several self tests, code examples,
and more.

Improving Libidn is costly, but you can help! We are looking for
organizations that find Libidn useful and wish to contribute back. You
can contribute by reporting bugs, improve the software, or donate money
or equipment.

Commercial support contracts for Libidn are available, and they help
finance continued maintenance. Simon Josefsson Datakonsult AB, a
Stockholm based privately held company, is currently funding Libidn
maintenance. We are always looking for interesting development
projects. See http://josefsson.org/ for more details.

The project page of the library is available at:
https://www.gnu.org/software/libidn/

All manual formats are available from:
https://www.gnu.org/software/libidn/manual/

Specifically, the following formats are available.

The main manual:
https://www.gnu.org/software/libidn/manual/libidn.html - HTML format
https://www.gnu.org/software/libidn/manual/libidn.pdf - PDF format

API Reference manual:
https://www.gnu.org/software/libidn/reference/intro.html - GTK-DOC HTML
https://www.gnu.org/software/libidn/reference/libidn.pdf - GTK-DOC PDF

Doxygen documentation:
https://www.gnu.org/software/libidn/doxygen/index.html - HTML format
https://www.gnu.org/software/libidn/doxygen/libidn.pdf - PDF format

JavaDoc output for the Java API:
https://www.gnu.org/software/libidn/javadoc/

If you need help to use Libidn, or want to help others, you are
invited to join our help-libidn mailing list, see:
https://lists.gnu.org/mailman/listinfo/help-libidn

Here are the compressed sources (4.4MB):
https://ftp.gnu.org/gnu/libidn/libidn-1.36.tar.gz

Here are GPG detached signatures:
https://ftp.gnu.org/gnu/libidn/libidn-1.36.tar.gz.sig

Here are the SHA-1 and SHA-224 signatures:

a543823486a1077608f78de187e528a5ea833d5b libidn-1.36.tar.gz
4a842693133c89fbb9a8ec953ef777fd8e6b86cea90adb7944ae2e44 libidn-1.36.tar.gz

We provide Windows binaries built using MinGW-w64 with the build script
windows/libidn4win.mk, for 32-bit and 64-bit x86 architecures:

https://ftp.gnu.org/gnu/libidn/libidn-1.36-win32.zip
https://ftp.gnu.org/gnu/libidn/libidn-1.36-win32.zip.sig
https://ftp.gnu.org/gnu/libidn/libidn-1.36-win64.zip
https://ftp.gnu.org/gnu/libidn/libidn-1.36-win64.zip.sig

Here are the SHA-1 and SHA-224 signatures:

dba943af7da9a837e9394360a46e42bccb206154 libidn-1.36-win32.zip
f296490aee3d75a99ecbb54f32cf661d0d903398 libidn-1.36-win64.zip
3fb588c116ad4478eabadb34f465cea6be31f8067a773504084c2865 libidn-1.36-win32.zip
fff343dc65a127866394e0fa1d39bfaba74dbe0fe321ec5593b33f93 libidn-1.36-win64.zip

The following OpenPGP keys are used to cryptographically sign the
software releases:

Simon Josefsson <si...@josefsson.org>
rsa3744 2014-06-22
9AA9 BDB1 1BB1 B99A 2128 5A33 0664 A769 5426 5E8C

Simon Josefsson <si...@josefsson.org>
ed25519 2019-03-20
B1D2 BD13 75BE CB78 4CF4 F8C4 D73C F638 C53C 06BE

Tim Rühsen <tim.r...@gmx.de>
rsa4096 2014-06-26
1CB2 7DBC 9861 4B2D 5841 646D 0830 2DB6 A267 0428

Code coverage, clang-analyzer output, and cyclomatic code complexity charts:
https://www.gnu.org/software/libidn/coverage/
https://www.gnu.org/software/libidn/clang-analyzer/
https://www.gnu.org/software/libidn/cyclo/

Happy hacking,
Simon
signature.asc
0 new messages