KMFCryptoOperation - スコープ指定、グローバル
KMFCryptoOperation クラスは、キー管理フレームワーク (KMF) 暗号化モジュールまたは 列レベル暗号化 (CLE) 暗号化モジュールを使用して暗号化操作を実行するためのメソッドを提供します。
この API を使用するには、KMF 暗号化モジュールまたは CLE 暗号化モジュールを事前に作成して構成している必要があります。モジュールには 1 つ以上の暗号化仕様が必要で、その関連キーを作成またはインポートする必要があります。詳細については、「 暗号化モジュール」を参照してください。
この API を使用して生成された KMFCryptoOperation オブジェクトは、対称暗号化などの暗号化の操作を表します。KMFCryptoOperations() メソッドを使用してこのオブジェクトを作成し、ビルダーメソッドを使用してオブジェクトのプロパティを設定し、doOperation() メソッドを使用して操作を実行します。
この API は、スコープ対象のアプリケーションでもグローバルのアプリケーションでも使用できます。この API を呼び出すときは、常に sn_kmf_ns 名前空間を指定する必要があります。
KMFCryptoOperation - KMFCryptoOperation(文字列 cryptoModuleName, 文字列 operationName)
指定したモジュールと操作の KMFCryptoOperation オブジェクトを作成します。
この API ではビルダーメソッドを利用します。ビルダーメソッドによって、目的のデータの出力形式の変更など、KMFCryptoOperation オブジェクトのプロパティが更新されます。ビルダーメソッドによっては、一部の操作で有効でないものがあります。各操作に使用できるビルダーメソッドは、以下のパラメーターテーブルに記載されています。
| 名前 | タイプ | 説明 |
|---|---|---|
| cryptoModuleName | 文字列 | 使用する Key Management Framework (KMF) 暗号化モジュールまたは Column Level Encryption (CLE) 暗号化モジュールの名前。このメソッドを呼び出す前に、モジュールを作成する必要があります。詳細については、「 暗号化モジュールの概要」を参照してください。 |
| operationName | 文字列 | 実行する操作の名前。 有効な値 (値の大文字と小文字を区別しない):
|
この例では、global.sj_cm というモジュールの KMFCryptoOperation オブジェクトをインスタンス化して、対称暗号化の操作を実行します。グローバルアプリケーションとスコープ対象アプリケーションの両方の名前空間を含める必要があります。
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION");
この例では、デフォルトの出力タイプと出力形式を更新するオプションを指定する方法を示します。
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION")
.withOutputType("STRING").withOutputFormat("FORMATTED");
var cipherText=op.doOperation("hi");
この例では、EC-IES という統合暗号化スキームを使用して非対称暗号化の操作を実行する方法を示します。signature などの長い値は、読みやすくするために一部 … に置き換えて短縮されています。
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…"
}
*/
この例では、EC-IES を使用して非対称復号化の操作を実行する方法を示します。
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 (オブジェクト data)
指定されたデータに対して、現在の KMFCryptoOperation オブジェクトによって定義された暗号化操作を実行し、結果を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| data | オブジェクト | 関連する KMFCryptoOperation オブジェクトで withSysId() ビルダーメソッドが以前に呼び出されている場合を除き、このパラメーターは必須です。暗号化操作を実行するデータを入力します。 |
| タイプ | 説明 |
|---|---|
操作タイプによって異なります。
|
関連する KMFCryptoOperation オブジェクトで指定の操作を実行した後のデータの結果。 |
この例では、doOperation() を使用して MAC を作成します。
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","MAC_GENERATION");
var data = "aGk=";
var mac = op.doOperation(data);
KMFCryptoOperation - withAdditionalInput(オブジェクト additionalInput)
暗号化操作を実行するために必要な追加の入力を設定します。
たとえば、メッセージ認証コード (MAC) の検証中に、生成された MAC タグをこのメソッドで渡します。同様に、署名検証中にこのメソッドを使用して署名を渡します。また、Elliptic Curve Integrated Encryption Scheme (EC-IES) などの統合された暗号で非対称操作を実行するときに、追加のデータである KMFEncryptionPayload オブジェクトをこのメソッドを使用して渡すこともできます。
| 名前 | タイプ | 説明 |
|---|---|---|
| additionalInput | 文字列またはオブジェクト | オプション。ただし、EC-IES を使用する場合の非対称復号化の操作を除きます。KMFCryptoOperation オブジェクトで指定された暗号化操作を実行するために必要な追加の入力データ。 サポートされている文字列の形式:
KMFEncryptionPayload オブジェクトの形式: |
| additionalInput.ciphertext | 文字列 (Base64) | 非対称復号化の場合は必須、その他の操作の場合はオプション。 有効な値:
出力タイプが payload に設定されている場合は、非対称暗号化の操作から使用できます。 |
| additionalInput.derivation_secret | 文字列 (Base64) | オプション。EC-IES を使用した非対称暗号化または非対称復号化の操作にのみ使用します。統合スキームのキー導出処理中に使用する共有シークレット。 |
| additionalInput.ephemeral_key | 文字列 (Base64) | EC-IES を使用した非対称復号化の操作の場合は必須、その他すべての操作の場合はオプション。統合スキームの基本的な同意プロセス中に使用する一時公開キー。 出力タイプが payload に設定されている場合は、非対称暗号化の操作から使用できます。 |
| additionalInput.ephemeral_key_format | 文字列 | オプション。EC-IES を使用した非対称暗号化または非対称復号化の操作にのみ使用します。ephemeral_key パラメーターで表される公開キーの形式を上書きします。 有効な値:
|
| additionalInput.signature | 文字列 (Base64) | EC-IES を使用した非対称復号化の操作の場合は必須、その他すべての操作の場合はオプション。統合スキームの署名検証プロセスを使用して検証する暗号テキストの署名。 出力タイプが payload に設定されている場合は、非対称暗号化の操作から使用できます。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、withAdditionalInput() を使用して文字列ベースの署名を KMFCryptoOperation オブジェクトに追加します。
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));
この例では、withAdditionalInput() を使用して署名と一時キーを KMFCryptoOperation オブジェクトに追加します。doOperation() の呼び出しや payload の説明などにあるような長い値は、読みやすくするために一部 … に置き換えて短縮されています。
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 (文字列 algorithm)
ラップするキーマテリアルに関連付けるアルゴリズムを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| algorithm | 文字列 | 使用するアルゴリズムです。 有効な値:
|
| タイプ | 説明 |
|---|---|
| なし |
この例では、withAlgorithm() を使用して、使用する暗号化アルゴリズムを 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(文字列 inputFormat)
暗号化操作が実行される入力データのデータ形式を設定します。データのデコードの際に、ここで指定した形式を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| inputFormat | 文字列 | 入力データの形式。 有効な値:
デフォルト:KMFCryptoOperation オブジェクトがインスタンス化されたときに指定された操作によって決定される値。詳細については、「KMFCryptoOperation - KMFCryptoOperation(文字列 cryptoModuleName, 文字列 operationName)」を参照してください。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、withInputFormat() を使用して、入力形式をエンコードなしに変更します。
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(文字列 outputFormat)
暗号化操作によって返される出力データのデータ形式を設定します。データのエンコードの際に、ここで指定した形式を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| outputFormat | 文字列 | 出力データの形式。 有効な値:
このメソッドが呼び出されない場合のデフォルト:KMFCryptoOperation オブジェクトがインスタンス化されたときに指定された操作によって決定される値。詳細については、「KMFCryptoOperation - KMFCryptoOperation(文字列 cryptoModuleName, 文字列 operationName)」を参照してください。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、withOutputFormat() を使用して、復号化の出力形式を KMFNone (デフォルトは 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(文字列 outputType)
暗号化操作の実行後に返される出力データのデータタイプを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| outputType | 文字列 | 出力データのタイプ。 出力タイプによっては、一部の操作に適用されないものがあります。サポートされていないタイプの場合は、例外がスローされます。 有効な値 (値の大文字と小文字を区別しない):
注: ペイロードの出力を指定する際の、doOperation() メソッドの出力は KMFEncryptionPayload オブジェクトです。このオブジェクトの構造の詳細については、withAdditionalInput() を参照してください。 デフォルト:KMFCryptoOperation オブジェクトがインスタンス化されたときに指定された操作によって決定される値。詳細については、「KMFCryptoOperation - KMFCryptoOperation(文字列 cryptoModuleName, 文字列 operationName)」を参照してください。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、withOutputType() を使用して MAC_VERIFICATION の出力タイプをブーリアンに設定します。
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(文字列 sysId)
KMFCryptoOperation オブジェクトでラップするキーの sys_id を設定します。キーの対称および非対称ラッピングに適用できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| sysId | 文字列 | ラップするキーの sys_id。モジュールキー [sys_kmf_module_key] テーブルにあります。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、withSysId() を使用して、ラップするキーを定義します。
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()