KMFCryptoOperation: Bereichsbezogen, global
Die KMFCryptoOperation Klasse stellt Methoden für die Ausführung kryptografischer Vorgänge mit bereit Key Management Framework( KMF) Kryptografisches Modul oder ein Feldverschlüsselung Verschlüsselungsmodul.
Zur Verwendung dieser API müssen Sie bereits ein kryptografisches KMF-Modul oder ein CLE-Verschlüsselungsmodul erstellt und konfiguriert haben. Das Modul muss mindestens eine kryptografische Spezifikation aufweisen, und Sie müssen den zugehörigen Schlüssel erstellen oder importieren. Weitere Informationen finden Sie unter Kryptografische Module .
Das mit dieser API generierte KMFCryptoOperation-Objekt stellt einen kryptografischen Vorgang dar, z. B. eine symmetrische Verschlüsselung. Verwenden Sie KMFCryptoOperations() Methode zum Erstellen dieses Objekts, die Generatormethoden zum Festlegen von Eigenschaften für das Objekt und die DoOperation() Methode zum Ausführen des Vorgangs.
Sie können diese API sowohl in bereichsbezogenen als auch globalen Anwendungen verwenden. Sie müssen immer angeben sn_kmf_ns Namespace beim Aufrufen dieser API.
KMFCryptoOperation – KMFCryptoOperation (Zeichenfolge kryptoModuleName, Zeichenfolge operationName)
Erstellt ein KMFCryptoOperation-Objekt für das angegebene Modul und den angegebenen Vorgang.
Diese API nutzt Generatormethoden. Generatormethoden aktualisieren Eigenschaften für das KMFCryptoOperation-Objekt, z. B. das Ändern des gewünschten Ausgabeformats der Daten. Nicht alle Builder-Methoden sind für alle Vorgänge gültig. Die für jeden Vorgang verfügbaren Generatormethoden sind in der Parametertabelle unten aufgeführt.
| Name | Typ | Beschreibung |
|---|---|---|
| CryptoModuleName | Zeichenfolge | Name des kryptografischen Moduls des Schlüsselverwaltungs-Frameworks (KMF) oder Feldverschlüsselung Zu verwendendes Verschlüsselungsmodul. Sie müssen das Modul erstellen, bevor Sie diese Methode aufrufen. Weitere Informationen finden Sie unter Kryptografisches Modul – Übersicht . |
| operationName | Zeichenfolge | Name des auszuführenden Vorgangs. Gültige Werte (Groß-/Kleinschreibung nicht beachten):
|
In diesem Beispiel wird ein KMFCryptoOperation-Objekt für das Modul global.sj_cm instanziiert, um einen symmetrischen Verschlüsselungsvorgang auszuführen. Sie müssen den Namespace sowohl für globale als auch bereichsbezogene Anwendungen einschließen.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION");
Dieses Beispiel zeigt, wie Optionen zum Aktualisieren des Standardausgabetyps und des Ausgabeformats angegeben werden.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION")
.withOutputType("STRING").withOutputFormat("FORMATTED");
var cipherText=op.doOperation("hi");
Dieses Beispiel zeigt, wie ein asymmetrischer Verschlüsselungsvorgang mit einem integrierten Verschlüsselungsschema (EC-IES) durchgeführt wird. Beachten Sie, dass lange Werte wie signature, Wurden gekürzt und zur Lesbarkeit durch eine Ellipse ersetzt.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_ENCRYPTION")
.withInputFormat("KMFNONE")
.withOutputType("PAYLOAD");
var cipherText = op.doOperation("hi");
/*
cipherText contains an object similar to this JSON: {
"signature": "pkg…",
"ephemeral_key": "BDi…",
"ciphertext": "afFS…"
}
*/
Dieses Beispiel zeigt, wie ein asymmetrischer Entschlüsselungsvorgang mit EC-IES ausgeführt wird.
var op = new
sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_DECRYPTION")
.withAdditionalInput({
"signature": "pkg… ",
"ephemeral_key": "BDi…"
})
.withOutputFormat("KMFNONE");
var clearText = op.doOperation("afFS…");
Dieses Beispiel zeigt, wie eine JWT-Signatur generiert und verifiziert wird.
// Validating from instance
var moduleName = 'global.jwtimport'; // must have signature generation spec
var header = '{ "alg": "P5512","typ": "JWT"}'; // your header JSON as a string
var payload = '{"sub": "1234567890", "name": "John Doe", "admin": true, "iat": 1516239022)'; // your payload JSON as a string
// SIGN
var api = new sn_kmf_ns.KMFCryptoOperation(moduleName, "JWT_SIGN").withAdditionalInput(header);
var token = api.doOperation(payload);
gs.info("sign = " + token);
// VERIFY
api = new sn_kmf_ns.KMFCrypto0peration(moduleName, "JWT_VERIFY");
var verifyoutput = api.doOperation(token);
gs.info("verify = " + verifyOutput);
KMFCryptoOperation – doOperation (Objektdaten)
Führt den vom aktuellen KMFCryptoOperation-Objekt definierten kryptografischen Vorgang für die angegebenen Daten aus und gibt das Ergebnis zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Daten | Objekt | Erforderlich, außer wenn MitSysId() Die generatormethode wurde zuvor für das zugehörige KMFCryptoOperation-Objekt aufgerufen. Eingabedaten, für die der kryptografische Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
Hängt vom Vorgangstyp ab.
|
Datenergebnisse, nachdem der im zugehörigen KMFCryptoOperation-Objekt angegebene Vorgang ausgeführt wurde. |
In diesem Beispiel wird verwendet DoOperation() Dient zum Erstellen eines MAC.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","MAC_GENERATION");
var data = "aGk=";
var mac = op.doOperation(data);
KMFCryptoOperation – withAdditionalInput(Object additionalInput)
Legt die zusätzliche Eingabe fest, die zum Ausführen des kryptografischen Vorgangs erforderlich ist.
Verwenden Sie diese Methode beispielsweise während einer MAC-Verifizierung (Message Authentication Code), um das generierte MAC-Tag zu übergeben. Verwenden Sie sie während der Signaturverifizierung ebenfalls, um die Signatur zu übergeben. Sie können diese Methode auch verwenden, um zusätzliche Daten, ein KMFEncryptionPayload-Objekt, zu übergeben, wenn Sie einen asymmetrischen Vorgang mit einer integrierten Verschlüsselung ausführen, z. B. Elliptic Curve Integrated Encryption Scheme (EC-IES).
| Name | Typ | Beschreibung |
|---|---|---|
| Zusätzliche Eingabe | Zeichenfolge oder Objekt | Optional, mit Ausnahme von asymmetrischen Entschlüsselungsvorgängen bei Verwendung von EC-IES. Zusätzliche Eingabedaten, die erforderlich sind, um den im KMFCryptoOperation-Objekt angegebenen kryptografischen Vorgang auszuführen. Unterstützte Zeichenfolgenformate:
KMFEncryptionPayload-Objektformat: |
| AdditionalInput.ciphertext | Zeichenfolge (Base64) | Erforderlich für asymmetrische Entschlüsselung, optional für alle anderen Vorgänge. Gültige Werte:
Verfügbar im asymmetrischen Verschlüsselungsvorgang, wenn der Ausgabetyp auf festgelegt ist payload. |
| additionalInput.derivation_secret | Zeichenfolge (Base64) | Optional, wird nur für die Vorgänge „asymmetrische Verschlüsselung“ oder „asymmetrische Entschlüsselung“ mit EC-IES verwendet. Gemeinsames Geheimnis, das während des Schlüsselableitungsprozesses des integrierten Schemas verwendet werden soll. |
| AdditionalInput.ephemeral_key | Zeichenfolge (Base64) | Erforderlich für den asymmetrischen Entschlüsselungsvorgang bei Verwendung von EC-IES, optional für alle anderen Vorgänge. Flüchtiger öffentlicher Schlüssel, der während des grundlegenden Vereinbarungsprozesses des integrierten Schemas verwendet werden soll. Verfügbar im asymmetrischen Verschlüsselungsvorgang, wenn der Ausgabetyp auf festgelegt ist payload. |
| AdditionalInput.ephemeral_key_Format | Zeichenfolge | Optional, wird nur für die Vorgänge „asymmetrische Verschlüsselung“ oder „asymmetrische Entschlüsselung“ mit EC-IES verwendet. Überschreibt das Format des öffentlichen Schlüssels, der durch dargestellt wird ephemeral_keyParameter. Gültige Werte:
|
| Zusätzliche Eingabe.Signatur | Zeichenfolge (Base64) | Erforderlich für den asymmetrischen Entschlüsselungsvorgang mit EC-IES, optional für alle anderen. Die Signatur des verschlüsselten Texts, der mithilfe des Signaturverifizierungsprozesses des integrierten Schemas validiert werden soll. Verfügbar im asymmetrischen Verschlüsselungsvorgang, wenn der Ausgabetyp auf festgelegt ist payload. |
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel verwendet WithAdditionalInput() Zum Hinzufügen einer zeichenbasierten Signatur zum KMFCryptoOperation-Objekt.
var signature = "John Doe";
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SIGNATURE_VERIFICATION")
.withAdditionalInput(signature);
var value = GlideStringUtil.base64Encode("Text to encode"); // Default input format is KMFBase64
var result = op.doOperation(String(value));
Dieses Beispiel verwendet WithAdditionalInput() Zum Hinzufügen einer Signatur und eines flüchtigen Schlüssels zum KMFCryptoOperation-Objekt. Beachten Sie, dass lange Werte, z. B. in DoOperation() Rufen Sie und an payloadBeschreibung, wurden gekürzt und zur Lesbarkeit durch eine Ellipse ersetzt.
var payload = new sn_kmf_ns.KMFEncryptionPayload();
payload.signature = "pkg...";
payload.ephemeral_key = " BDi...";
payload.ephemeral_key_format = "x962";
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_DECRYPTION")
.withAdditionalInput(payload)
.doOperation("afFS...";
KMFCryptoOperation – withAlgorithm (Zeichenfolgenalgorithmus)
Legt den Algorithmus fest, der dem Schlüsselmaterial zugeordnet ist, das umgebrochen werden soll.
| Name | Typ | Beschreibung |
|---|---|---|
| algorithm | Zeichenfolge | Zu verwendender Algorithmus. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel verwendet MitAlgorithm() Zum Ändern des verwendeten Verschlüsselungsalgorithmus in EC.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_WRAPPING").withAlgorithm("EC");
var value = GlideStringUtil.base64Encode("Sample key"); // Default input format is KMFBase64
var result = op.doOperation(String(value));
KMFCryptoOperation – withInputFormat(Zeichenfolge inputFormat)
Legt das Datenformat für die Eingabedaten fest, für die der kryptografische Vorgang ausgeführt wird. Verwendet das angegebene Format beim Decodieren der Daten.
| Name | Typ | Beschreibung |
|---|---|---|
| Eingabeformat | Zeichenfolge | Format der Eingabedaten. Gültige Werte:
Standard: Wert, der durch den Vorgang bestimmt wird, der beim Instanziieren des KMFCryptoOperation-Objekts angegeben wurde. Weitere Informationen finden Sie unter KMFCryptoOperation – KMFCryptoOperation (Zeichenfolge kryptoModuleName, Zeichenfolge operationName). |
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel verwendet MitInputFormat() Um das Eingabeformat so zu ändern, dass es keine Codierung hat.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION").withInputFormat("KMFNone");
var result = op.doOperation("Text with no encoding"); // Pass in unencrypted String
Dieses Beispiel verwendet MitInputFormat() Um das Eingabeformat in KMF_GLIDE_ENCRYPTER_FORMATTED. zu ändern
var encryptOp = new sn_kmf_ns.KMFCryptoOperation("<module_name>", "SYMMETRIC_DECRYPTION")
.withInputFormat("KMF_GLIDE_ENCRYPTER_FORMATTED")
.withOutputFormat("KMFNone");
var clear_text = encryptOp.doOperation(<encrypted_text>);
KMFCryptoOperation – withOutputFormat(Zeichenfolge outputFormat)
Legt das Datenformat der Ausgabedaten fest, die vom kryptografischen Vorgang zurückgegeben werden. Verwendet das angegebene Format beim Codieren der Daten.
| Name | Typ | Beschreibung |
|---|---|---|
| outputFormat | Zeichenfolge | Format der Ausgabedaten. Gültige Werte:
Standard, wenn diese Methode nicht aufgerufen wird: Wert, der durch den Vorgang bestimmt wird, der beim Instanziieren des KMFCryptoOperation-Objekts angegeben wurde. Weitere Informationen finden Sie unter KMFCryptoOperation – KMFCryptoOperation (Zeichenfolge kryptoModuleName, Zeichenfolge operationName). |
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel verwendet MitAusgabeFormat() Um das Ausgabeformat der Entschlüsselung auf KMFNone festzulegen (Standard ist KMFBase64.)
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_DECRYPTION").withOutputFormat("KMFNone");
var clear_data = op.doOperation(<FORMATTED_data>); // Pass in default of FORMATTED data
KMFCryptoOperation – withOutputType(Zeichenfolge outputType)
Legt den Datentyp für die Ausgabedaten fest, die nach der Ausführung des kryptografischen Vorgangs zurückgegeben werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausgabetyp | Zeichenfolge | Typ der Ausgabedaten. Nicht alle Ausgabetypen gelten für alle Vorgänge. Für einen nicht unterstützten Typ wird eine Ausnahme ausgelöst. Gültige Werte (Groß-/Kleinschreibung nicht beachten):
Hinweis: Wenn eine Ausgabe von angegeben wird Nutzlast , Die Ausgabe von DoOperation() Methode ist ein KMFEncryptionPayload-Objekt. Weitere Informationen zur Struktur dieses Objekts finden Sie unter WithAdditionalInput() . Standard: Wert, der durch den Vorgang bestimmt wird und bei der Instanziierung des KMFCryptoOperation-Objekts angegeben wurde. Weitere Informationen finden Sie unter KMFCryptoOperation – KMFCryptoOperation (Zeichenfolge kryptoModuleName, Zeichenfolge operationName). |
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel verwendet MitAusgabetyp() Um den Ausgabetyp für „MAC_VERIFICATION“ auf „Boolesch“ festzulegen.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","MAC_VERIFICATION")
.withOutputType("Boolean").withAdditionalInput(<MAC>);
var value = GlideStringUtil.base64Encode("Text to sign"); // Default input type is KMFBase64
var result = op.doOperation(String(value));
KMFCryptoOperation – withSysId(Zeichenfolge sysId)
Legt die sys_ID des Schlüssels fest, der im KMFCryptoOperation-Objekt umgebrochen werden soll. Gilt für symmetrisches und asymmetrisches Wrapping von Schlüsseln.
| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | SYS_ID des Schlüssels, der umgebrochen werden soll. Tabelle: Modulschlüssel [sys_kmf_module_key] |
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel verwendet MitSysId() Zum Definieren des Schlüssels, der umgebrochen werden soll.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_WRAPPING").withSysId("0d06ce525b231010f86d1b341d81c777");
var wrappedKey = operation.doOperation(); // No need to pass data when using withSysId()