6 暗号コマンド
暗号コマンドを使用すると、Oracle Key Vault管理対象セキュリティ・オブジェクトを使用して、提供されたデータを暗号化および復号化できます。
- okv crypto data decryptコマンド
okv crypto data decrypt
コマンドは、Oracle Key Vaultサーバー内のOracle Key Vault管理対象セキュリティ・オブジェクトを使用して、指定された暗号文データに対して復号化操作を実行し、復号化されたデータを返します。 - okv crypto data encryptコマンド
okv crypto data encrypt
コマンドは、Oracle Key Vaultサーバー内のOracle Key Vault管理対象セキュリティ・オブジェクトを使用して、指定された平文データに対して暗号化操作を実行し、暗号化データを返します。 - okv crypto data signコマンド
okv crypto data sign
コマンドは、Oracle Key Vaultサーバー内のOracle Key Vault管理対象セキュリティ・オブジェクトを使用して、指定されたメッセージ・ファイルに対して署名操作を実行し、署名データを返します。 - okv crypto data sign-verifyコマンド
okv crypto data sign-verify
コマンドは、Oracle Key Vaultサーバー内のOracle Key Vault管理対象セキュリティ・オブジェクトを使用して、指定された署名データおよびメッセージ・ファイルに対して署名検証操作を実行し、その署名が有効かどうかを返します。
6.1 okv crypto data decryptコマンド
okv crypto data decrypt
コマンドは、Oracle Key Vaultサーバー内のOracle Key Vault管理対象セキュリティ・オブジェクトを使用して、指定された暗号文データに対して復号化操作を実行し、復号化されたデータを返します。
必要な権限
エンドポイントには、復号化に使用されるキーに対する読取り権限が必要です。
構文
okv crypto data decrypt --uuid UUID --data file_path --block-cipher-mode block_cipher_mode --padding padding --iv file_path --authenticated-encryption-additional-data file_path --authenticated-encryption-tag file_path --data-format data_format --decrypted-data output_file_path
JSON入力ファイル・テンプレート
{ "service": { "category": "crypto", "resource": "data", "action": "decrypt", "options": { "uuid": "#VALUE", "data" : "#VALUE", "blockCipherMode" : "#CBC|ECB|CFB|OFB|GCM", "padding" : "#NONE|ZEROS|PKCS5", "iv" : "#VALUE", "authenticatedEncryptionAdditionalData" : "#VALUE", "authenticatedEncryptionTag" : "#VALUE" "dataFormat": "#HEX|BASE64", "decryptedData": "#VALUE" } } }
パラメータ
パラメータ/テンプレート・パラメータ | 必須かどうか | 説明 |
---|---|---|
|
必須 |
復号化に使用するキーのUUID (Universally Unique ID)。 オブジェクトの一意識別子を調べるには、Oracle Key Vault管理コンソールで、「Keys & Wallets」タブをクリックして、左側のナビゲーション・ウィンドウで「Keys & Secrets」をクリックします。「Keys & Secrets」表で、「Unique Identifier」列を確認します。 |
|
必須 |
復号化する必要がある暗号文データへのファイル・パス |
|
オプション |
ブロック暗号モード。値は次のとおりです。
この設定を省略すると、Oracle Key Vaultではキーに関連付けられた暗号化パラメータを使用します。 |
|
オプション |
パディング。値は次のとおりです。
この設定を省略すると、Oracle Key Vaultではキーに関連付けられた暗号化パラメータを使用します。 |
|
オプション |
復号化操作に使用する初期化ベクトル(IV)のファイル・パス。暗号化中に使用されたものと同じ初期化ベクトルを使用する必要があります。 |
|
オプション |
復号化操作に使用する認証済暗号化追加データのファイル・パス。暗号化中に使用されたものと同じ認証済暗号化追加データを指定する必要があります。 |
|
オプション |
復号化操作に使用する認証済暗号化タグのファイル・パス。暗号化中に生成されたものと同じ認証済暗号化タグを指定する必要があります。 |
|
オプション |
データ形式。入力および出力ファイルのデータの形式。指定しない場合、データはバイナリ・データとして読み取られ、書き込まれます。値は次のとおりです。
|
|
必須 |
復号化されたデータが書き込まれるファイル・パス。指定された出力ファイルが存在しない場合は、エラーになります。ファイルが存在する場合は、復号化されたデータで上書きされます。 |
JSONの例
okv crypto data decrypt
コマンドのJSON入力を生成します。okv crypto data decrypt --generate-json-input
次のような入力が生成されます。
{ "service": { "category": "crypto", "resource": "data", "action": "decrypt", "options": { "uuid": "#VALUE", "data" : "#VALUE", "blockCipherMode" : "#CBC|ECB|CFB|OFB|GCM", "padding" : "#NONE|ZEROS|PKCS5", "iv" : "#VALUE", "authenticatedEncryptionAdditionalData" : "#VALUE", "authenticatedEncryptionTag" : "#VALUE" "dataFormat": "#HEX|BASE64", "decryptedData": "#VALUE" } } }
- 生成された入力をファイル(たとえば、
key_decrypt.json
)に保存し、それを編集して必要な復号化設定を含めます。たとえば:{ "service": { "category": "crypto", "resource": "data", "action": "decrypt", "options": { "uuid": "2359E04F-DA61-4F7C-BF9F-913D3369A93A", "data" : "/okv/opt/data", "blockCipherMode" : "GCM", "padding" : "ZEROS", "iv" : "/okv/opt/iv", "authenticatedEncryptionAdditionalData" : "/okv/opt/keys/authenticatedEncryptionAdditionalData", "authenticatedEncryptionTag" : "/okv/opt/keys/authenticatedEncryptionTag", "dataFormat": "HEX", "decryptedData": "/okv/opt/keys/decrypted_data" } } }
- 生成されたJSONファイルを使用して
okv crypto data decrypt
コマンドを実行します。okv crypto data decrypt --from-json key_decrypt.json
出力は、次のようになります。
{ "result" : "Success", "value" : { "decryptedData" : "/okv/opt/keys/decrypted_data" } }
親トピック: 暗号コマンド
6.2 okv crypto data encryptコマンド
okv crypto data encrypt
コマンドは、Oracle Key Vaultサーバー内のOracle Key Vault管理対象セキュリティ・オブジェクトを使用して、指定された平文データに対して暗号化操作を実行し、暗号化データを返します。
必要な権限
エンドポイントには、暗号化に使用されるキーに対する読取り権限が必要です。
構文
okv crypto data encrypt --uuid UUID --data file_path --block-cipher-mode block_cipher_mode --padding padding --random-iv random_iv --iv file_path --authenticated-encryption-additional-data file_path --data-format data_format --encrypted-data output_file_path --iv-out output_file_path --authenticated-encryption-tag output_file_path
JSON入力ファイル・テンプレート
{ "service": { "category": "crypto", "resource": "data", "action": "encrypt", "options": { "uuid": "#VALUE", "data" : "#VALUE", "blockCipherMode" : "#CBC|ECB|CFB|OFB|GCM", "padding" : "#NONE|ZEROS|PKCS5", "randomIV" : "#TRUE|FALSE", "iv" : "#VALUE", "authenticatedEncryptionAdditionalData" : "#VALUE", "dataFormat": "#HEX|BASE64", "encryptedData": "#VALUE", "ivOut": "#VALUE", "authenticatedEncryptionTag" : "#VALUE" } } }
パラメータ
パラメータ/テンプレート・パラメータ | 必須かどうか | 説明 |
---|---|---|
|
必須 |
暗号化に使用するキーのUUID (Universally Unique ID)。 オブジェクトの一意識別子を調べるには、Oracle Key Vault管理コンソールで、「Keys & Wallets」タブをクリックして、左側のナビゲーション・ウィンドウで「Keys & Secrets」をクリックします。「Keys & Secrets」表で、「Unique Identifier」列を確認します。 |
|
必須 |
暗号化する必要がある平文データへのファイル・パス |
|
オプション |
ブロック暗号モード。値は次のとおりです。
この設定を省略すると、Oracle Key Vaultではキーに関連付けられた暗号化パラメータを使用します。 ノート: block-cipher-mode をGCM として使用している場合は、--authenticated-encryption-tag をパラメータとともに設定します。
|
|
オプション |
パディング。値は次のとおりです。
この設定を省略すると、Oracle Key Vaultではキーに関連付けられた暗号化パラメータを使用します。 |
|
オプション |
Oracle Key Vaultサーバーでランダム初期化ベクトル(IV)を使用する必要があるかどうかを示します。値は次のとおりです。
Oracle Key Vaultは、このコマンドの入力でIVが指定されていない場合にのみ |
|
オプション |
暗号化操作に使用するIVのファイル・パス。
|
|
オプション |
暗号化操作に使用する認証済暗号化追加データのファイル・パス。
|
|
オプション |
データ形式。入力および出力ファイルのデータの形式。指定しない場合、データはバイナリ・データとして読み取られ、書き込まれます。値は次のとおりです。
|
|
必須 |
暗号化されたデータが書き込まれるファイル・パス。指定された出力ファイルが存在しない場合は、エラーになります。ファイルが存在する場合は、暗号化されたデータで上書きされます。 |
|
オプション |
応答のIVが書き込まれるファイル・パス。指定された出力ファイルが存在しない場合は、エラーになります。ファイルが存在する場合は、応答のIVで上書きされます。IVは、
|
|
オプション |
応答の認証済暗号化タグが書き込まれるファイル・パス。指定された出力ファイルが存在しない場合は、エラーになります。ファイルが存在する場合は、応答の認証済暗号化タグで上書きされます。返される認証済暗号化タグを暗号文の復号化に使用する必要があります。
|
JSONの例
okv crypto data encrypt
コマンドのJSON入力を生成します。okv crypto data encrypt --generate-json-input
次のような入力が生成されます。
{ "service": { "category": "crypto", "resource": "data", "action": "encrypt", "options": { "uuid": "#VALUE", "data" : "#VALUE", "blockCipherMode" : "#CBC|ECB|CFB|OFB|GCM", "padding" : "#NONE|ZEROS|PKCS5", "randomIV" : "#TRUE|FALSE", "iv" : "#VALUE", "authenticatedEncryptionAdditionalData" : "#VALUE", "dataFormat": "#HEX|BASE64", "encryptedData": "#VALUE", "ivOut": "#VALUE", "authenticatedEncryptionTag" : "#VALUE" } } }
- 生成された入力をファイル(たとえば、
key_encrypt.json
)に保存し、それを編集して必要な暗号化設定を含めます。暗号化時に使用する値と、生成されたivOutおよびauthenticatedEncryptionTag (ある場合)を記録しておきます。暗号文を復号化する場合は、同じ値を指定する必要があります。たとえば:{ "service": { "category": "crypto", "resource": "data", "action": "encrypt", "options": { "uuid": "2359E04F-DA61-4F7C-BF9F-913D3369A93A", "data" : "/okv/opt/data", "blockCipherMode" : "GCM", "padding" : "ZEROS", "iv" : "/okv/opt/iv", "authenticatedEncryptionAdditionalData" : "/okv/opt/keys/authenticatedEncryptionAdditionalData", "dataFormat": "HEX", "encryptedData": "/okv/opt/keys/encrypted_data", "authenticatedEncryptionTag" : "/okv/opt/keys/authenticatedEncryptionTag" } } }
- 生成されたJSONファイルを使用して
okv crypto data encrypt
コマンドを実行します。okv crypto data encrypt --from-json key_encrypt.json
出力は、次のようになります。
{ "result" : "Success", "value" : { "encryptedData" : "/okv/opt/keys/encrypted_data" "authenticatedEncryptionTag" : "/okv/opt/keys/authenticatedEncryptionTag" } }
ノート:
Oracle Key Vaultでは、最大32KBのデータを暗号化できます。親トピック: 暗号コマンド
6.3 okv crypto data signコマンド
okv crypto data sign
コマンドは、Oracle Key Vaultサーバー内のOracle Key Vault管理対象セキュリティ・オブジェクトを使用して、指定されたメッセージ・ファイルに対して署名操作を実行し、署名データを返します。
必要な権限
エンドポイントに、署名に使用する秘密キーに対する読取り権限が必要です。
構文
okv crypto data sign --uuid <UUID> --message-file <filePath> --message <message> --message-type <messageType> --digital-signature-algorithm <digitalSignatureAlgoritm> --signature-data <output file path> --output_format TEXT
JSON入力ファイル・テンプレート
{ "service": { "category": "crypto", "resource": "data", "action": "sign", "options": { "uuid": "#VALUE", "message" : "#VALUE", "messageFile" : "#VALUE", "messageType" : "#RAW|DIGEST", "digitalSignatureAlgorithm" : #RSASSA_PKCS1_v1_5_SHA256|RSASSA_PKCS1_v1_5_SHA384|RSASSA_PKCS1_v1_5_SHA512|RSASSA_PSS_SHA256|RSASSA_PSS_SHA384|RSASSA_PSS_SHA512", "signatureData": "#VALUE" } } }
パラメータ
パラメータ/テンプレート・パラメータ | 必須かどうか | 説明 |
---|---|---|
|
必須 |
署名操作に使用するキーの一意識別子。 オブジェクトの一意識別子を調べるには、Oracle Key Vault管理コンソールで、「Keys & Wallets」タブをクリックして、左側のナビゲーション・ウィンドウで「Keys & Secrets」をクリックします。「Keys & Secrets」表で、「Unique Identifier」列を確認します。 |
|
オプション |
署名する必要があるデータ。
|
|
オプション |
署名する必要があるデータへのファイル・パスを示します。 |
|
オプション |
message またはmessage-file/messageFile 引数で指定したデータのタイプ(RAW またはDIGEST )を示します。デフォルト値はRAW です |
|
オプション |
デジタル署名アルゴリズム サポートされているアルゴリズム
デフォルト: |
|
オプション |
受信した署名付きデータを書き込むファイルへのパス。 このオプションが指定されている場合、出力は次のようになります:
このオプションが指定されていない場合、出力は次のようになります:
|
JSONの例
okv crypto data sign
コマンド用のJSON入力を生成します。okv crypto data sign --generate-json-input
次のような入力が生成されます。
{ "service": { "category": "crypto", "resource": "data", "action": "sign", "options": { "uuid": "#VALUE", "message" : "#VALUE", "messageFile" : "#VALUE", "messageType" : "#RAW|DIGEST", "digitalSignatureAlgorithm" : "#RSASSA_PKCS1_v1_5_SHA256|RSASSA_PKCS1_v1_5_SHA384|RSASSA_PKCS1_v1_5_SHA512", "signatureData": "#VALUE" } } }
- 生成された入力内容をファイル(たとえば、
key_sign.json
)に保存してから、それを編集して必要な署名設定を含めます。たとえば:{ "service": { "category": "crypto", "resource": "data", "action": "sign", "options": { "uuid": "2359E04F-DA61-4F7C-BF9F-913D3369A93A", "message" : "Example message to sign", "messageType" : "RAW", "digitalSignatureAlgorithm" : "RSASSA_PKCS1_v1_5_SHA256" } } }
- 生成されたJSONファイルを使用して
okv crypto data sign
コマンドを実行します。okv crypto data sign --from-json key_sign.json
"--signature-data/signatureData"が指定されている場合、出力は次のようになります:
{ "result" : "Success", "value" : { "signatureData" : "12634F979551C19ADAEB69733853ADB41405FF108E479393AF8B82140186F7244A41F7E36BA1129E67453B36297BB91115C4B10B02101AA8068E251B74B7374E975E1E9C1EEACDCB73BAACF4E05359563A8806B49AA9263ECF61A0D4A0769F1CA5C3CEC0B0B8B4F4F470C5E78F01549C04A491CE346916ECC55E5AA6E2EEA42A3909A38A8090C341FAFEE7C1547D7BC4509CDC65728729011F4301DFB105CF2A0F6B1799D4B9B29667789E6EA1A4319D14E7B92BBC2E68F3DB20CA8B8270FC20C272F638202F3D68248B7AF12750C2A22DF159886AC2456DBAA4CC94A90A064D771106619C103DCCC66C0815FA9FF3349A03E0E3D9696984E6A826EAA507C32F" } }
親トピック: 暗号コマンド
6.4 okv crypto data sign-verifyコマンド
okv crypto data sign-verify
コマンドは、Oracle Key Vaultサーバー内のOracle Key Vault管理対象セキュリティ・オブジェクトを使用して、指定された署名データおよびメッセージ・ファイルに対して署名検証操作を実行し、その署名が有効かどうかを返します。
必要な権限
エンドポイントに、署名検証に使用する公開キーに対する読取り権限が必要です。
構文
okv crypto data sign-verify --uuid <UUID> --message-file <filePath> --message <message> --signature-data <filePath> --digital-signature-algorithm <digitalSignAlgoritm> --text_output TEXT
JSON入力ファイル・テンプレート
{ "service": { "category": "crypto", "resource": "data", "action": "sign-verify", "options": { "uuid": "#VALUE", "message" : "#VALUE", "messageFile" : "#VALUE", "messageType" : "#RAW|DIGEST", "signatureData" : "#VALUE", "digitalSignatureAlgorithm" : "#RSASSA_PKCS1_v1_5_SHA256|RSASSA_PKCS1_v1_5_SHA384|RSASSA_PKCS1_v1_5_SHA512|RSASSA_PSS_SHA256|RSASSA_PSS_SHA384|RSASSA_PSS_SHA512" } } }
パラメータ
パラメータ/テンプレート・パラメータ | 必須かどうか | 説明 |
---|---|---|
|
必須 |
署名検証に使用するキーのUniversally Unique ID (UUID)。 オブジェクトの一意識別子を調べるには、Oracle Key Vault管理コンソールで、「Keys & Wallets」タブをクリックして、左側のナビゲーション・ウィンドウで「Keys & Secrets」をクリックします。「Keys & Secrets」表で、「Unique Identifier」列を確認します。 |
|
オプション |
署名操作に渡されているデータ(アルゴリズムで、署名を検証するために元のデータが必要になるため)。 |
|
オプション |
署名操作に渡されているデータへのファイル・パスを指定します(アルゴリズムで、署名を検証するために元のデータが必要になるため)。署名する必要があるデータへのファイル・パスを示します。message-file またはmessageFile 引数で指定します。
|
|
オプション |
message またはmessage-file/messageFile 引数で指定したデータのタイプ(RAW またはDIGEST )を示します。
|
|
必須 |
検証する必要がある署名へのファイル・パスを示します。 |
|
オプション |
アルゴリズムのデジタル署名。 |
--output_format |
オプション |
出力形式を指定します。 |
JSONの例
okv crypto data sign-verify
コマンド用のJSON入力を生成します。okv crypto data sign-verify --generate-json-input
次のような入力が生成されます。
{ "service": { "category": "crypto", "resource": "data", "action": "sign-verify", "options": { "uuid": "#VALUE", "message" : "#VALUE", "messageFile" : "#VALUE", "messageType" : "#RAW|DIGEST", "signatureData" : "#VALUE", "digitalSignatureAlgorithm" : "#RSASSA_PKCS1_v1_5_SHA256|RSASSA_PKCS1_v1_5_SHA384|RSASSA_PKCS1_v1_5_SHA512" } } }
- 生成された入力内容をファイル(たとえば、
key_sign-verify.json
)に保存してから、それを編集して必要な復号化設定を含めます。たとえば:{ { "service": { "category": "crypto", "resource": "data", "action": "sign-verify", "options": { "uuid": "2359E04F-DA61-4F7C-BF9F-913D3369A93A", "message" : "Example message to sign", "messageType" : "RAW", "signatureData": "/tmp/signature_data", "digitalSignatureAlgorithm" : "RSASSA_PKCS1_v1_5_SHA256" } } }
- 生成されたJSONファイルを使用して
okv crypto data sign-verify
コマンドを実行します。okv crypto data sign-verify --from-json key_sign-verify.json
出力は、次のようになります。
{ "result" : "Success", "value" : { "validityIndicator" : "VALID" } }
例
次の例では、okvutil sign
コマンドで生成された署名をopensslを使用して検証する方法を示します。
- opensslでは、HEX形式の署名の検証はサポートされていません。okvutil signコマンドで生成される署名はHEX形式であるため、xxdまたは他のユーティリティを使用してその署名をバイナリ形式に変換できます。
xxd -r -p /tmp/signature_data > /tmp/signature_data.bin
- /tmp/signature_data.binに格納されているバイナリ形式の署名と、ファイルkey.pubに格納されている公開キーを使用して、ファイルmessage.txtに格納されているメッセージの署名を検証します。
openssl dgst -sha256 -verify key.pub -signature /tmp/signature_data.bin message.txt Verified OK
親トピック: 暗号コマンド