Crypt-, Verschlüsselungs-oder setkey-Subroutine
Zweck
Verschlüsselt oder entschlüsselt Daten.
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
const char * Key;
Beschreibung
Die Subroutinen crypt und encrypt verschlüsseln oder entschlüsseln Daten. Die Subroutine crypt führt eine unidirektionale Verschlüsselung eines festen Datenarrays mit dem bereitgestellten Parameter PW aus. Die Subroutine verwendet den Parameter Salt , um den Verschlüsselungsalgorithmus zu variieren.
Die Subroutine encrypt verschlüsselt oder entschlüsselt die im Parameter Block angegebenen Daten unter Verwendung des Schlüssels, der von einem früheren Aufruf der Subroutine setkey bereitgestellt wurde. Die Daten im Parameter Block bei der Eingabe müssen ein Array mit 64 Zeichen sein. Jedes Zeichen muss ein Zeichen 0 oder 1 sein.
Wenn Sie Funktionen aus libc.a für crypt statisch binden müssen, gehen Sie wie folgt vor:
- Erstellen Sie eine Datei und fügen Sie Folgendes hinzu:
#! ___setkey ___encrypt ___crypt - Führen Sie die Verknüpfung durch.
- Fügen Sie der Makdatei Folgendes hinzu:
wobei YourFileName der Name der Datei ist, die Sie in Schritt 1 erstellt haben. Sie sollte wie folgt aussehen:-bI:YourFileNameLDFLAGS=bnoautoimp -bI:/lib/syscalls.exp -bI:YourFileName -lc
Diese Unterroutinen werden aus Gründen der Kompatibilität mit UNIX-Systemimplementierungen bereitgestellt.
Parameter
| Element | Beschreibung |
|---|---|
| Blockspeicher | Gibt ein Array mit 64 Zeichen an, das die Werte (char) 0 und (char) 1 enthält. Bei der Rückgabe enthält dieser Puffer die verschlüsselten oder entschlüsselten Daten. |
| EdFlag | Legt fest, ob die Subroutine die Daten verschlüsselt oder entschlüsselt. Ist dieser Parameter auf 0 gesetzt, werden die Daten verschlüsselt. Wenn dieser Parameter einen Wert ungleich null hat, werden die Daten entschlüsselt. Wenn die Datei /usr/lib/libdes oder /usr/lib/libdes_64 nicht vorhanden ist und der Parameter EdFlag auf einen Wert ungleich Null gesetzt ist, gibt die Subroutine encrypt den Fehlercode ENOSYS zurück. Die Dateien /usr/lib/libdes und /usr/lib/libdes_64 sind Teil der Dateigruppe des , die sich im Erweiterungspaket für AIX® befindet. |
| key | Gibt ein 64-Element-Array mit der Umsetzung 0 und 1 als const char -Datentyp an. Der Parameter Schlüssel wird zum Verschlüsseln oder Entschlüsseln von Daten verwendet. |
| PW | Gibt die zu verschlüsselnde Zeichenfolge an |
| Salz | Bestimmt den Algorithmus, den der Parameter PW anwendet, um die zurückgegebene Ausgabezeichenfolge zu generieren. Wenn die linke geschweifte Klammer ({) ist nicht das erste Zeichen des Werts, den der Parameter Salt angibt, dann verwendet die Subroutine den DES-Algorithmus (Data Encryption Standard). Verwenden Sie für den DES-Algorithmus den Parameter Salt , um den Hashalgorithmus auf eine der 4096 Arten zu variieren. Der Parameter Salt muss eine zweistellige Zeichenfolge aus den folgenden Zeichentypen sein:
Wenn die linke geschweifte Klammer ({) ist das erste Zeichen des Werts, den der Salt -Parameter angibt. Anschließend verwendet der LPA (Loadable Password Algorithm) den Namen, der in geschweiften Klammern ({}) angegeben ist. Eine Gruppe von Saltzeichen folgt auf den LPA-Namen und endet mit einem Dollarzeichen ($). Die Länge des Saltzeichens hängt vom angegebenen LPA ab. Das folgende Beispiel zeigt einen möglichen Wert für den LPA von
SMD5 , den der Parameter Salt angibt: |
Rückgabewerte
Die Subroutine crypt gibt einen Zeiger auf das verschlüsselte Kennwort zurück. Der statische Bereich, den dieser Zeiger angibt, kann durch nachfolgende Aufrufe überschrieben werden.
Wenn die Subroutine crypt nicht erfolgreich ist, wird ein Nullzeiger zurückgegeben, und die globale Variable errno wird auf den Fehler gesetzt.
Fehlercodes
Die Subroutine encrypt gibt die folgenden Fehlercodes zurück:
| Element | Beschreibung |
|---|---|
| ENOSYS | Die Subroutine encrypt wurde mit dem Parameter EdFlag aufgerufen, der auf einen Wert ungleich null gesetzt wurde. Die Datei /usr/lib/libdes oder /usr/lib/libdes_64 ist nicht vorhanden. Die Dateien /usr/lib/libdes und /usr/lib/libdes_64 sind Teil der Dateigruppe des , die sich im Erweiterungspaket für AIX befindet. |