Der Makro CCRY umfasst folgende Funktionen:
ein Datenpaket verschlüsseln
eine mehrteilige Verschlüsselungsoperation fortsetzen
verschlüsselte Daten in einem Teil entschlüsseln
eine mehrteilige Entschlüsselungsoperation fortsetzen
aus Daten einen Hash-Wert (Message-Digest) berechnen
eine mehrteilige message-digesting Operation fortsetzen
Daten in einem Teil signieren, wobei die Signatur ein Anhang der Daten ist
eine mehrteilige Signatur-Operation fortsetzen, wobei die Signatur ein Anhang der Daten ist
Daten in einer einzelnen Operation signieren, wobei die Daten von der Signatur zurückgewonnen werden können
eine Signatur in einer einteiligen Operation überprüfen, wobei die Signatur ein Anhang der Daten ist
eine mehrteilige Überprüfungsoperation fortsetzen, bei der die Signatur ein Anhang der Daten ist
eine Signatur in einer einteiligen Operation überprüfen, wobei die Daten von der Signatur zurückgewonnen werden
eine mehrteilige Hash-Wert-Berechnungs- und Verschlüsselungsoperation fortsetzen
eine mehrteilige Entschlüsselungs- und Hash-Wert-Berechnungsoperation fortsetzen
eine mehrteilige Signatur- und Verschlüsselungsoperation fortsetzen
eine mehrteilige Entschlüsselungs- und Überprüfungsoperation fortsetzen
Alle Funktionen werden asynchron ausgeführt, falls für die Task mit C_Initialize asynchrone Funktionsausführung festgelegt wurde.
Eine detaillierte Beschreibung zu den Funktionen des Makros CCRY finden Sie in PKCS#11 V2.20: Cryptographic Token Interface Standard in den Abschnitten 11.8 bis 11.13 unter „C_Encrypt“, „C_EncryptUpdate“, „C_Decrypt“, „C_DecryptUpdate“, „C_Digest“, „C_DigestUpdate“, „C_DigestKey“, „C_Sign“, „C_SignUpdate“, „C_SignRecover“, „C_Verify“, „C_VerifyUpdate“, „C_VerifyRecover“, „C_DigestEncryptUpdate“, „C_DecryptDigestUpdate“, „C_SignEncryptUpdate“ und „C_DecryptVerifyUpdate“.
Makro | Operanden |
CCRY | MF=C / D / L / M / E ,VERSION=001 / 002 ,ACTION=ENCRYPT / *ENCRYPTUPDATE / *DECRYPT / *DECRYPTUPDATE / *DIGEST / *DIGESTUPDATE / *SIGN / *SIGNUPDATE / *SIGNRECOVER / *VERIFY / *VERIFYUPDATE / *VERIFYRECOVER / *DIGESTENCRYPTUPDATE / *DECRYPTDIGESTUPDATE / *SIGNENCRYPTUPDATE / *DECRYPTVERIFYUPDATE / <var: enum-of _action_set: 1> / default: _action_set.undefined ,SESSION=<var: int:4> / <integer 0 .. 2147483647> / 0 ,DATAIN=<var: pointer> / NULL ,INLEN=<var: int:4> / <integer 0 .. 2147483647> / 0 ,DATAOUT=<var: pointer> / NULL ,OUTLEN=<var: int:4> / <integer 0 .. 2147483647> / 0 ,BOID=<var: int:4> / 0 ,RPOSTAD=<var: pointer> / NULL ,RPOSTL=<integer 1..2> / <var: int:4> / 0 |
VERSION
gibt an, welche Version des Parameterbereichs generiert werden soll. Es empfiehlt sich, immer die neueste Version zu verwenden.
=001
Es wird das Format generiert, das von CRYPT V1.0 unterstützt wurde. Dieses Format unterstützt nur die bereits in CRYPT V1.0 bekannten Parameter.
VERSION=001 ist Voreinstellung.
=002
Es wird das Format generiert, das ab CRYPT V1.1 unterstützt wird.
ACTION
Art der Aktion.
Die korrespondierende PKCS#11-Funktion ist bei jedem Aktionscode angegeben.
=*ENCRYPT
entspricht der PKCS#11-Funktion C_Encrypt;
verschlüsselt ein Datenpaket.
=*ENCRYPTUPDATE
entspricht der PKCS#11-Funktion C_EncryptUpdate;
setzt eine mehrteilige Verschlüsselungsoperation fort.
=*DECRYPT
entspricht der PKCS#11-Funktion C_Decrypt;
entschlüsselt verschlüsselte Daten in einem Teil.
=*DECRYPTUPDATE
entspricht der PKCS#11-Funktion C_DecryptUpdate;
setzt eine mehrteilige Entschlüsselungsoperation fort.
=*DIGEST
entspricht der PKCS#11-Funktion C_Digest;
fasst Daten zu einem Hash-Wert zusammen.
=*DIGESTUPDATE
entspricht der PKCS#11-Funktion C_DigestUpdate;
setzt eine mehrteilige message-digesting Operation fort.
=*SIGN
entspricht der PKCS#11-Funktion C_Sign;
signiert Daten in einem Teil, in dem die Signatur ein Anhang der Daten ist.
=*SIGNUPDATE
entspricht der PKCS#11-Funktion C_SignUpdate;
setzt eine mehrteilige Signatur-Operation fort, bei der die Signatur ein Anhang der Daten ist.
=*SIGNRECOVER
entspricht der PKCS#11-Funktion C_SignRecover;
signiert Daten in einer einzelnen Operation, bei der die Daten von der Signatur zurückgewonnen werden können.
Diese Funktion wird nicht unterstützt.
=*VERIFY
entspricht der PKCS#11-Funktion C_Verify;
überprüft die Signatur in einer einteiligen Operation, wo die Signatur ein Anhang der Daten ist.
=*VERIFYUPDATE
entspricht der PKCS#11-Funktion C_VerifyUpdate;
setzt eine mehrteilige Überprüfungsoperation fort, wo die Signatur ein Anhang der Daten ist.
=*VERIFYRECOVER
entspricht der PKCS#11-Funktion C_VerifyRecover;
überprüft eine Signatur in einer einteiligen Operation, bei der die Daten von der Signatur zurückgewonnen werden.
=*DIGESTENCRYPTUPDATE
entspricht der PKCS#11-Funktion C_DigestEncryptUpdate;
setzt eine mehrteilige Hash-Wert-Berechnungs- und Verschlüsselungsoperation fort.
Diese Funktion wird nicht unterstützt.
=*DECRYPTDIGESTUPDATE
entspricht der PKCS#11-Funktion C_DecryptDigestUpdate;
setzt eine mehrteilige Entschlüsselungs- und Hash-Wert-Berechnungsoperation fort.
Diese Funktion wird nicht unterstützt.
=*SIGNENCRYPTUPDATE
entspricht der PKCS#11-Funktion C_SignEncryptUpdate;
setzt eine mehrteilige Signatur- und Verschlüsselungsoperation fort.
Diese Funktion wird nicht unterstützt.
=*DECRYPTVERIFYUPDATE
entspricht der PKCS#11-Funktion C_DecryptVerifyUpdate;
setzt eine mehrteilige Entschlüsselungs- und Überprüfungsoperation fort.
Diese Funktion wird nicht unterstützt.
SESSION
Identifier der Sitzung
DATAIN
zeigt auf Eingabedaten
INLEN
Länge der Eingabedaten in Bytes
DATAOUT
zeigt auf Ausgabedaten
*VERIFY: Zeiger auf die Signatur
*DIGESTUPDATE, *SIGNUPDATE, *VERIFYUPDATE: wird nicht genutzt
OUTLEN
Länge der Ausgabedaten in Bytes
*VERIFY: Länge der Signatur
*DIGESTUPDATE, *SIGNUPDATE, *VERIFYUPDATE: wird nicht genutzt
BOID
Ereigniskennung
bei synchroner Ausführung: BOID wird nicht genutzt.
bei asynchroner Ausführung: Ereigniskennung, an die das Ende der Funktionsbearbeitung signalisiert wird.
RPOSTAD
Adresse des Postcodes
bei synchroner Ausführung: RPOSTAD wird nicht genutzt.
bei asynchroner Ausführung: spezifiziert ein Feld, das Postcode-Information enthält, die zum korrespondierenden Programm übertragen werden soll, das den SOLSIG-Aufruf absetzt (siehe auch Benutzerhandbuch „Makroaufrufe an den Ablaufteil“ [3]).
Länge des Postcodes: 4 oder 8 bytes
RPOSTL
Länge des Postcodes
bei synchroner Ausführung: RPOSTL wird nicht genutzt.
bei asynchroner Ausführung: gibt die Länge der Postcode-Information in Worten an (1 oder 2).