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
modifierUnicode 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- GNU Libidn
- Implémentation en Tcl[5].
Notes et références
modifierRéférences
modifier- (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
Notes
modifier- Une mise à jour proposée en décembre 2006 est restée sans suite[2].