crypt, encrypt ou setkey Subroutine
Objectif
Chiffre ou déchiffre les données.
Bibliothèque
Bibliothèque C standard (libc.a)
Syntaxe
const char * Key;
Descriptif
Les sous-routines crypt et encrypt chiffrent ou déchiffrent les données. La sous-routine crypt effectue un chiffrement unidirectionnel d'un tableau de données fixe avec le paramètre PW fourni. La sous-routine utilise le paramètre Sel pour faire varier l'algorithme de chiffrement.
La sous-routine encrypt chiffre ou déchiffre les données fournies dans le paramètre Block à l'aide de la clé fournie par un appel antérieur à la sous-routine setkey . Les données du paramètre Bloc en entrée doivent être un tableau de 64 caractères. Chaque caractère doit être un caractère 0 ou 1.
Si vous devez lier statiquement des fonctions à partir de libc.a for crypt , procédez comme suit:
- Créez un fichier et ajoutez ce qui suit:
#! ___setkey ___encrypt ___crypt - Effectuez la liaison.
- Ajoutez les éléments suivants au fichier make:
où YourFileName est le nom du fichier que vous avez créé à l'étape 1. Il doit ressembler à ce qui suit:-bI:YourFileNameLDFLAGS=bnoautoimp -bI:/lib/syscalls.exp -bI:YourFileName -lc
Ces sous-programmes sont fournis à des fins de compatibilité avec les implémentations du système UNIX.
Paramètres
| Article | Descriptif |
|---|---|
| Bloc | Identifie un tableau de 64 caractères contenant les valeurs (char) 0 et (char) 1. A son retour, cette mémoire tampon contient les données chiffrées ou déchiffrées. |
| EdFlag | Détermine si la sous-routine chiffre ou déchiffre les données. Si ce paramètre est défini sur 0, les données sont chiffrées. Si ce paramètre est une valeur différente de zéro, les données sont déchiffrées. Si le fichier /usr/lib/libdes ou /usr/lib/libdes_64 n'existe pas et si le paramètre EdFlag est défini sur une valeur différente de zéro, la sous-routine encrypt renvoie le code d'erreur ENOSYS . Les fichiers /usr/lib/libdes et /usr/lib/libdes_64 font partie de l'ensemble de fichiers des , qui se trouve dans AIX® Expansion Pack. |
| key | Indique un tableau à 64 éléments de 0 et 1 transtypés en tant que type de données const char . Le paramètre Clé est utilisé pour chiffrer ou déchiffrer les données. |
| PartnerWorld | Indique la chaîne à chiffrer. |
| Sel de cryptage | Détermine l'algorithme appliqué par le paramètre PW pour générer la chaîne de sortie renvoyée. Si l'accolade gauche ({) n'est pas le premier caractère de la valeur spécifiée par le paramètre Salt , puis la sous-routine utilise l'algorithme DES (Data Encryption Standard). Pour l'algorithme DES, utilisez le paramètre Sel pour faire varier l'algorithme de hachage de l'une des méthodes 4096. Le paramètre Sel doit être une chaîne de 2 caractères appartenant aux types de caractères suivants:
Si l'accolade gauche ({) est le premier caractère de la valeur spécifiée par le paramètre Salt , puis l'algorithme de mot de passe chargeable (LPA) utilise le nom spécifié entre les accolades ({ }). Un ensemble de caractères de sel de cryptage suit le nom LPA et se termine par un signe dollar ($). La longueur du caractère de sel de cryptage dépend de la zone permanente de programme (LPA) spécifiée. L'exemple suivant illustre une valeur possible pour la zone permanente de programme (LPA)
SMD5 que le paramètre Salt spécifie: |
Valeurs renvoyées
La sous-routine crypt renvoie un pointeur vers le mot de passe chiffré. La zone statique indiquée par ce pointeur peut être remplacée par des appels ultérieurs.
Si la sous-routine crypt échoue, un pointeur null est renvoyé et la variable globale errno est définie pour indiquer l'erreur.
Codes d'erreur
La sous-routine encrypt renvoie les codes d'erreur suivants:
| Article | Descriptif |
|---|---|
| ENOSYS | La sous-routine encrypt a été appelée à l'aide du paramètre EdFlag qui a été défini sur une valeur différente de zéro. De plus, le fichier /usr/lib/libdes ou /usr/lib/libdes_64 n'existe pas. Les fichiers /usr/lib/libdes et /usr/lib/libdes_64 font partie de l'ensemble de fichiers des , qui se trouve dans AIX Expansion Pack. |