KMFCryptoOperation – Scoped, Global
Die Klasse KMFCryptoOperation stellt Methoden zum Ausführen von kryptografischen Vorgängen mit einem kryptografischen KMF-Modul oder einem CLE-Verschlüsselungsmodul bereit.
Um diese API zu verwenden, müssen Sie bereits ein KMF-Kryptografiemodul (Key Management Framework) oder ein CLE-Verschlüsselungsmodul (Column Level Encryption) erstellt und konfiguriert haben. Das Modul muss eine oder mehrere kryptografische Spezifikationen 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 die KMFCryptoOperations()- Methode, um dieses Objekt zu erstellen, die Generatormethoden, um Eigenschaften für das Objekt festzulegen, und die doOperation()- Methode, um den Vorgang auszuführen.
Sie können diese API sowohl in bereichsbezogenen als auch in globalen Anwendungen verwenden. Sie müssen beim Aufruf dieser API immer den Namespace sn_kmf_ns angeben.
KMFCryptoOperation – KMFCryptoOperation(String kryptoModuleName, String operationName)
Erstellt ein KMFCryptoOperation-Objekt für das angegebene Modul und den angegebenen Vorgang.
Diese API nutzt Generatormethoden. Generatormethoden aktualisieren Eigenschaften im KMFCryptoOperation-Objekt, z. B. das Ändern des gewünschten Ausgabeformats der Daten. Nicht alle Generatormethoden sind für alle Vorgänge gültig. Die für jeden Vorgang verfügbaren Generatormethoden sind in der folgenden Parametertabelle aufgeführt.
| Name | Typ | Beschreibung |
|---|---|---|
| kryptoModuleName | Zeichenfolge | Name des zu verwendenden kryptografischen Moduls Key Management Framework (KMF) oder des Verschlüsselungsmoduls Column Level Encryption (CLE). Sie müssen das Modul erstellen, bevor Sie diese Methode aufrufen. Weitere Informationen finden Sie unter Übersicht über das kryptografische Modul. |
| operationName | Zeichenfolge | Name des auszuführenden Vorgangs. Gültige Werte (Groß-/Kleinschreibung 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 für bereichsbezogene Anwendungen angeben.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION");
Dieses Beispiel zeigt, wie Optionen zum Aktualisieren des Standardausgabetyps und -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 signaturegekürzt und aus Gründen der Lesbarkeit durch eine Ellipse ersetzt wurden.
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…");
KMFCryptoOperation – doOperation(Object data)
Führt den durch das aktuelle KMFCryptoOperation-Objekt definierten kryptografischen Vorgang für die angegebenen Daten durch und gibt das Ergebnis zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| data | Objekt | Erforderlich, außer wenn die Generatormethode withSysId() zuvor für das zugeordnete KMFCryptoOperation-Objekt aufgerufen wurde. Geben Sie Daten ein, für die der kryptografische Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
Hängt vom Vorgangstyp ab.
|
Datenergebnisse nach Ausführung des im zugeordneten KMFCryptoOperation-Objekt angegebenen Vorgangs. |
In diesem Beispiel wird doOperation() verwendet, um einen MAC zu erstellen.
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-Überprüfung (Message Authentication Code), um das generierte MAC-Tag zu übergeben. In ähnlicher Weise können Sie es während der Signaturverifizierung verwenden, um die Signatur zu übergeben. Sie können diese Methode auch verwenden, um zusätzliche Daten, ein KMFEncryptionPayload-Objekt, zu übergeben, wenn ein asymmetrischer Vorgang mit einer integrierten Verschlüsselung ausgeführt wird, z. B. Elliptic Curve Integrated Encryption Scheme (EC-IES).
| Name | Typ | Beschreibung |
|---|---|---|
| zusätzlicheEingabe | Zeichenfolge oder Objekt | Optional, außer asymmetrische Entschlüsselungsvorgänge bei Verwendung von EC-IES. Zusätzliche Eingabedaten, die zum Ausführen des im KMFCryptoOperation-Objekt angegebenen kryptografischen Vorgangs erforderlich sind. 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 über den asymmetrischen Verschlüsselungsvorgang, wenn der Ausgabetyp auf payloadfestgelegt ist. |
| AdditionalInput.leitung_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 über den asymmetrischen Verschlüsselungsvorgang, wenn der Ausgabetyp auf payloadfestgelegt ist. |
| 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 den Parameter ephemeral_key dargestellt wird. Gültige Werte:
|
| zusätzlicheEingabe.Signatur | Zeichenfolge (Base64) | Erforderlich für den asymmetrischen Entschlüsselungsvorgang mit EC-IES, optional für alle anderen. Die Signatur des Geheimtexts, der mithilfe des Signaturverifizierungsprozesses des integrierten Schemas validiert werden soll. Verfügbar über den asymmetrischen Verschlüsselungsvorgang, wenn der Ausgabetyp auf payloadfestgelegt ist. |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird withAdditionalInput() verwendet, um dem KMFCryptoOperation-Objekt eine zeichenfolgenbasierte Signatur hinzuzufügen.
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));
In diesem Beispiel wird withAdditionalInput() verwendet, um dem KMFCryptoOperation-Objekt eine Signatur und einen flüchtigen Schlüssel hinzuzufügen. Beachten Sie, dass lange Werte, wie die im Aufruf von doOperation() und in der Beschreibung von payload, gekürzt und aus Gründen der Lesbarkeit durch eine Ellipse ersetzt wurden.
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(String algorithm)
Legt den Algorithmus fest, der dem Schlüsselmaterial zugeordnet ist, um ihn umzubrechen.
| Name | Typ | Beschreibung |
|---|---|---|
| Algorithmus | Zeichenfolge | Zu verwendender Algorithmus. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird withAlgorithm() verwendet, um den verwendeten Verschlüsselungsalgorithmus in EC zu ändern.
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(String inputFormat)
Legt das Datenformat für die Eingabedaten fest, für die der kryptografische Vorgang ausgeführt wird. Verwendet beim Decodieren der Daten das angegebene Format.
| Name | Typ | Beschreibung |
|---|---|---|
| inputFormat | Zeichenfolge | Format der Eingabedaten. Gültige Werte:
Standard: Wert, der durch den Vorgang bestimmt wird, der bei der Instantiierung des KMFCryptoOperation-Objekts angegeben wurde. Weitere Informationen finden Sie unter KMFCryptoOperation – KMFCryptoOperation(String kryptoModuleName, String operationName). |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird withInputFormat() verwendet, um das Eingabeformat so zu ändern, dass es keine Codierung gibt.
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
KMFCryptoOperation – withOutputFormat(String inputFormat)
Legt das Datenformat der Ausgabedaten fest, die vom kryptografischen Vorgang zurückgegeben werden. Verwendet beim Codieren der Daten das angegebene Format.
| Name | Typ | Beschreibung |
|---|---|---|
| AusgabeFormat | Zeichenfolge | Format der Ausgabedaten. Gültige Werte:
Standard, wenn diese Methode nicht aufgerufen wird: Wert, der durch den Vorgang bestimmt wird, der angegeben wurde, als das KMFCryptoOperation-Objekt instanziiert wurde. Weitere Informationen finden Sie unter KMFCryptoOperation – KMFCryptoOperation(String kryptoModuleName, String operationName). |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird withOutputFormat() verwendet, um das Ausgabeformat der Entschlüsselung auf KMFMone 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(String inputType)
Legt den Datentyp für die Ausgabedaten fest, die nach 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 beachten):
Hinweis: Wenn Sie die Ausgabe Payloadangeben, ist die Ausgabe der doOperation()- Methode ein KMFEncryptionPayload-Objekt. Weitere Informationen zur Struktur dieses Objekts finden Sie unter withAdditionalInput(). Standard: Wert, der durch den Vorgang bestimmt wird und angegeben wird, wenn das KMFCryptoOperation-Objekt instanziiert wurde. Weitere Informationen finden Sie unter KMFCryptoOperation – KMFCryptoOperation(String kryptoModuleName, String operationName). |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird withOutputType() verwendet, um den Ausgabetyp für MAC_VERIFICATION auf Boolean 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(String sysId)
Legt die sys_id des Schlüssels fest, der das KMFCryptoOperation-Objekt umbrechen soll. Gilt für symmetrische und asymmetrische Umhüllung von Schlüsseln.
| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des zu umbrechenden Schlüssels. Befindet sich in der Modulschlüssel-Tabelle [sys_kmf_module_key]. |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird withSysId() verwendet, um den Schlüssel für den Wrap zu definieren.
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()