6 暗号コマンド

暗号コマンドを使用すると、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 / uuid

必須

復号化に使用するキーのUUID (Universally Unique ID)。

オブジェクトの一意識別子を調べるには、Oracle Key Vault管理コンソールで、「Keys & Wallets」タブをクリックして、左側のナビゲーション・ウィンドウで「Keys & Secrets」をクリックします。「Keys & Secrets」表で、「Unique Identifier」列を確認します。

--data / data

必須

復号化する必要がある暗号文データへのファイル・パス

--block-cipher-mode / blockCipherMode

オプション

ブロック暗号モード。値は次のとおりです。

  • CBC (暗号ブロック・チェーンの場合)
  • CFB (暗号フィードバックの場合)
  • ECB (電子コードブックの場合)
  • GCM (ガロア/カウンタの場合)
  • OFB (出力フィードバックの場合)

この設定を省略すると、Oracle Key Vaultではキーに関連付けられた暗号化パラメータを使用します。

--padding / padding

オプション

パディング。値は次のとおりです。

  • NONE
  • ZEROS
  • PKCS5

この設定を省略すると、Oracle Key Vaultではキーに関連付けられた暗号化パラメータを使用します。

--iv / iv

オプション

復号化操作に使用する初期化ベクトル(IV)のファイル・パス。暗号化中に使用されたものと同じ初期化ベクトルを使用する必要があります。

--authenticated-encryption-additional-data / authenticatedEncryptionAdditionalData

オプション

復号化操作に使用する認証済暗号化追加データのファイル・パス。暗号化中に使用されたものと同じ認証済暗号化追加データを指定する必要があります。

--authenticated-encryption-tag / authenticatedEncryptionTag

オプション

復号化操作に使用する認証済暗号化タグのファイル・パス。暗号化中に生成されたものと同じ認証済暗号化タグを指定する必要があります。

--data-format / dataFormat

オプション

データ形式。入力および出力ファイルのデータの形式。指定しない場合、データはバイナリ・データとして読み取られ、書き込まれます。値は次のとおりです。

  • HEX
  • BASE64

--decrypted-data / decryptedData

必須

復号化されたデータが書き込まれるファイル・パス。指定された出力ファイルが存在しない場合は、エラーになります。ファイルが存在する場合は、復号化されたデータで上書きされます。

JSONの例

  1. 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"
        }
      }
    }
  2. 生成された入力をファイル(たとえば、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"
        }
      }
    }
  3. 生成された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 / uuid

必須

暗号化に使用するキーのUUID (Universally Unique ID)。

オブジェクトの一意識別子を調べるには、Oracle Key Vault管理コンソールで、「Keys & Wallets」タブをクリックして、左側のナビゲーション・ウィンドウで「Keys & Secrets」をクリックします。「Keys & Secrets」表で、「Unique Identifier」列を確認します。

--data / data

必須

暗号化する必要がある平文データへのファイル・パス

--block-cipher-mode / blockCipherMode

オプション

ブロック暗号モード。値は次のとおりです。

  • CBC (暗号ブロック・チェーンの場合)
  • CFB (暗号フィードバックの場合)
  • ECB (電子コードブックの場合)
  • GCM (ガロア/カウンタの場合)
  • OFB (出力フィードバックの場合)

この設定を省略すると、Oracle Key Vaultではキーに関連付けられた暗号化パラメータを使用します。

--padding / padding

オプション

パディング。値は次のとおりです。

  • NONE
  • ZEROS
  • PKCS5

この設定を省略すると、Oracle Key Vaultではキーに関連付けられた暗号化パラメータを使用します。

--random-iv / randomIV

オプション

Oracle Key Vaultサーバーでランダム初期化ベクトル(IV)を使用する必要があるかどうかを示します。値は次のとおりです。

  • TRUE
  • FALSE (デフォルト)

Oracle Key Vaultは、このコマンドの入力でIVが指定されていない場合にのみrandomIV値を使用します。IVを省略し、入力でrandomIVTRUEに設定した場合、Oracle Key Vaultは暗号化操作にランダムIVを使用します。

--iv / iv

オプション

暗号化操作に使用するIVのファイル・パス。

okv crypto data encryptコマンドにIVファイル・パスを含めた場合は、okv crypto data decryptの実行時にこのIVファイル・パスを使用します。

--authenticated-encryption-additional-data / authenticatedEncryptionAdditionalData

オプション

暗号化操作に使用する認証済暗号化追加データのファイル・パス。

okv crypto data encryptコマンドに認証済暗号化追加データのファイル・パスを含めた場合は、okv crypto data decryptの実行時にこの認証済暗号化ファイル・パスを使用します。

--data-format / dataFormat

オプション

データ形式。入力および出力ファイルのデータの形式。指定しない場合、データはバイナリ・データとして読み取られ、書き込まれます。値は次のとおりです。

  • HEX
  • BASE64

--encrypted-data / encryptedData

必須

暗号化されたデータが書き込まれるファイル・パス。指定された出力ファイルが存在しない場合は、エラーになります。ファイルが存在する場合は、暗号化されたデータで上書きされます。

--iv-out / ivOut

オプション

応答のIVが書き込まれるファイル・パス。指定された出力ファイルが存在しない場合は、エラーになります。ファイルが存在する場合は、応答のIVで上書きされます。IVは、ivが指定されてなく、入力でrandomIVがtrueに設定されている場合にのみ、ivOutで返されます。入力でivが指定されている場合、Oracle Key VaultはivOutパラメータを無視します。

okv crypto data encryptコマンドに応答のIVのファイル・パスを含めた場合は、okv crypto data decryptの実行時にこの応答のIVのファイル・パスを使用します。

--authenticated-encryption-tag / authenticatedEncryptionTag

オプション

応答の認証済暗号化タグが書き込まれるファイル・パス。指定された出力ファイルが存在しない場合は、エラーになります。ファイルが存在する場合は、応答の認証済暗号化タグで上書きされます。返される認証済暗号化タグを暗号文の復号化に使用する必要があります。

okv crypto data encryptコマンドに応答の認証済暗号化タグのファイル・パスを含めた場合は、okv crypto data decryptの実行時にこの応答の認証済暗号化タグのファイル・パスを使用します。

JSONの例

  1. 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"
        }
      }
    }
  2. 生成された入力をファイル(たとえば、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"
        }
      }
    }
  3. 生成された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"
      }
    }