Dezvoltat de | Simon Josefsson, proiect GNU |
---|---|
Ultima versiune |
2.3.0 (14 noiembrie 2019) 1,36 (22 iulie 2020) |
Depozit | git.savannah.gnu.org/cgit/libidn.git și gitlab.com/libidn/libidn2.git |
Scris in | VS |
Sistem de operare | GNU / Linux , BSD ( d ) , Microsoft Windows și macOS |
Mediu inconjurator | GNU / Linux , FreeBSD , NetBSD , OpenBSD , GNU , Unix , Solaris , IRIX , AIX , Tru64 , MS Windows |
Tip | Biblioteca software |
Licență | GNU LGPL |
Documentație | www.gnu.org/software/libidn/manual |
Site-ul web | www.gnu.org/software/libidn/ |
GNU Libidn este o bibliotecă software pentru codificarea și decodarea numelor de domenii internaționalizate în conformitate cu specificațiile Stringprep , Punycode și IDNA . Este dezvoltat și întreținut de Simon Josefsson ca parte a proiectului GNU . Biblioteca este scrisă în C și o parte a API - ului este accesibilă și în C ++ , Emacs Lisp , Python și Java . O implementare în Java și C # este furnizată în mod nativ și distribuită în condițiile licenței publice generale mai mici GNU .
Această bibliotecă a fost numită Libstringprep înainte de a deveni un proiect GNU.
Biblioteca conține o implementare generică a Stringprep . Sunt incluse și unele profiluri Nameprep (în) , iSCSI , XMPP și Kerberos versiunea 5 . Punycode și ACE ( ASCII Compatible Encoding ) în contextul unui nume de domeniu internaționalizat sunt acceptate. Este inclus un mecanism pentru a defini tabelele de validare ale unui domeniu de nivel superior ( TLD ) și pentru a compara șirurile de caractere din aceste tabele. Tabelele implicite pentru unele TLD-uri sunt chiar incluse.
Stringprep API - ul este format din două „ principale “ funcții , primul pentru conversia datelor de la reprezentarea nativă a unui sistem la UTF-8 , iar a doua pentru procesarea Stringprep. Acest lucru simplifică utilizarea unui profil Stringprep într-o aplicație .
Punycode API este format din două funcții, una pentru codare, iar celălalt pentru decodare.
IDNA API este format din două funcții de codare, primul ASCII , al doilea la Unicode , precum și un nivel ridicat de interfață pentru conversia între numele de domeniu și ACE lor ( ASCII Compatible Encoding ) reprezentare.
TLD API include mai multe funcții pentru extragerea de domeniu de nivel superior numele unui domeniu reprezentat în șiruri, altele pentru localizarea masa TLD corectă pentru utilizarea sa în domeniul de nivel superior corect, altele pentru validarea unui șir de caractere pe o masă TLD, și mai multe funcții adaptor pentru a efectua toți acești pași într-un singur apel.
GNU Libidn este utilizat de GNU SASL și GNU Shishi pentru a procesa nume de utilizator și parole.