Stringprep
Stringprep est un protocole normalisĂ© par l'IETF[1] dĂ©crivant les transformations qui doivent ĂȘtre effectuĂ©es sur des chaĂźnes de caractĂšres Unicode avant utilisation par d'autres protocoles.
Caractéristiques
[modifier | modifier le code]Unicode permet en effet plusieurs formes pour un mĂȘme texte et il est souvent nĂ©cessaire de mettre sous une forme canonique un texte Unicode, par exemple avant des opĂ©rations de comparaison. MĂȘme le jeu de caractĂšres ASCII a parfois de telles opĂ©rations mais elles sont en gĂ©nĂ©ral bien plus simples que Stringprep (la plus courante est le passage tout en majuscules, pour pouvoir faire des recherches ou des comparaisons indĂ©pendantes de la casse).
Stringprep ne spĂ©cifie pas directement quelle canonicalisation doit ĂȘtre effectuĂ©e. Il donne une sĂ©rie de choix et chaque profil de Stringprep va indiquer quels choix ont Ă©tĂ© faits. Par exemple, Stringprep donne des tables de caractĂšres qui peuvent ĂȘtre interdits et chaque profil choisit quelles tables il interdit effectivement.
Stringprep est normalisé dans le RFC 3454[1],[note 1], mais reste à l'état de proposition, probablement en raison du faible nombre d'implémentations logicielles notoires largement déployées. Les deux profils les plus répandus aujourd'hui sont nameprep[3], utilisé dans IDN et SASLprep[4], utilisé pour des noms d'utilisateur soumis à authentification.
Implémentations logicielles
[modifier | modifier le code]- GNU Libidn
- Implémentation en Tcl[5].
Notes et références
[modifier | modifier le code]Références
[modifier | modifier le code]- 1 2 (en) « Preparation of Internationalized Strings ("stringprep") », Request for comments no 3454,
- â « Preparation of Internationalized Strings (stringprep)  », IETF- draft-suignard-stringprep-bis-00, 20 dĂ©cembre 2006.
- â (en) « Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN) », Request for comments no 3491,
- â (en) « SASLprep: Stringprep Profile for User Names and Passwords », Request for comments no 4013,
- â (en) Une implĂ©mentation en Tcl de Stringprep