Stringprep

Un article de Wikipédia, l'encyclopédie libre.

Stringprep est un protocole normalisé par l'IETF et qui décrit les transformations qui doivent être effectuées sur des chaînes de caractères Unicode avant utilisation par d'autres protocoles.

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 recherchers ou des comparaisons indépendante 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. Les deux profils les plus répandus aujourd'hui sont nameprep, RFC 3491, utilisé dans IDN et SASLprep, RFC 4013, utilisé pour des noms d'utilisateur soumis à authentification.