Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

login(1)

passwd(1)

getpass(3C)

crypt(3X)

passwd(4)

crypt(3C)                                                         crypt(3C)

NAME
     crypt, setkey, encrypt - Zeichenketten verschlüsseln

SYNTAX
     #include <unistd.h>

     char *crypt(const char *key, const char *salt);

     void encrypt(char block[64], int edflag);

     #include <stdlib.h>

     void setkey(const char *key);

BESCHREIBUNG
     crypt() ist die Paßwort-Verschlüsselungsfunktion. Sie beruht auf einem
     Einweg-Verschlüsselungsalgorithmus mit Variationen, die (unter ande-
     rem) die Anwendung von Hardware-Implementierungen für eine Schlüssel-
     suche verhindern sollen.

     key ist die zu verschlüsselnde Eingabefolge, zum Beispiel das Paßwort
     eines Benutzers. salt ist eine Zeichenkette der Länge zwei aus der
     Menge a-zA-Z0-9./. Diese Zeichenkette wird zur Veränderung des Ver-
     schlüsselungsalgorithmus auf eine von 4096 verschiedenen Arten verwen-
     det; danach wird die Eingabefolge als Schlüssel zum wiederholten Ver-
     schlüsseln einer konstanten Zeichenkette benutzt. Der jeweils zurück-
     gegebene Wert zeigt auf die verschlüsselte Zeichenkette. Die ersten
     beiden Zeichen des Rückgabewerts sind salt selbst.

     Die Funktionen setkey() und encrypt() ermöglichen einen (recht einfa-
     chen) Zugriff auf den implementierungsabhängigen Verschlüsselungsalgo-
     rithmus. Das Argument von setkey() ist ein Zeichenfeld mit einer Länge
     von 64 Bytes, das nur die Zeichen mit den numerischen Werten 0 und 1
     enthält. Diese Zeichenkette wird in Gruppen von je acht Bits aufge-
     teilt, dabei wird das niederwertige Bit in jeder Gruppe ignoriert;
     hieraus ergibt sich ein Schlüssel mit 56 Bits, der eingetragen wird.
     Dies ist dann der Schlüssel, der von dem Algorithmus zum Verschlüsseln
     der Zeichenkette block bei der Funktion encrypt() verwendet wird.

     Das Argument block für encrypt() ist ein Zeichenfeld der Länge 64, das
     nur Zeichen mit den Werten 0 und 1 enthält. Das Argumentfeld wird in
     ein ähnliches Feld geändert, das die Bits des Arguments enthält, nach-
     dem sie unter Verwendung des von setkey() gesetzten Schlüssels durch
     den Verschlüsselungsalgorithmus verändert wurden. Wenn edflag Null
     ist, wird das Argument verschlüsselt. Wenn edflag 1 ist, kann das
     Argument entschlüsselt werden. Falls es nicht entschlüsselt wird, wird
     errno auf ENOSYS gesetzt.








Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

crypt(3C)                                                         crypt(3C)

     Die Funktionen schlagen fehl, wenn

     ENOSYS    Das System unterstützt die Funktionalität nicht.

ERGEBNIS
     Der Rückgabewert von crypt() weist auf Daten der Speicherklasse sta-
     tic, die bei jedem Aufruf überschrieben werden.

HINWEISE
     Da setkey() und encrypt() keinen Wert zurückgeben, können Fehler nur
     wie folgt festgestellt werden: errno wird auf 0 gesetzt, dann wird die
     Funktion aufgerufen und errno geprüft: Wenn errno ungleich 0 ist, muß
     ein Fehler aufgetreten sein.

SIEHE AUCH
     login(1), passwd(1), getpass(3C), crypt(3X), passwd(4).






































Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026