CloudHSM CLI で RSA-OAEP でキーをアンラップする
CloudHSM CLI の key unwrap rsa-oaep コマンドを使用して、RSA プライベートキーと RSA-OAEP
ラップ解除メカニズムを使用してペイロードキーをラップ解除します。
ラップ解除されたキーは、AWS CloudHSM によって生成されたキーと同じ方法で使用できます。ローカルで生成されなかったことを示すために、local
属性は false
に設定されます。
key unwrap rsa-oaep コマンドを使用するには、AWS CloudHSM クラスターに RSA パブリックラッピングキーの RSA プライベートキーがあり、その unwrap
属性を true
に設定する必要があります。
ユーザーのタイプ
このコマンドは、次のタイプのユーザーが実行できます。
-
Crypto User (CU)
要件
-
このコマンドを実行するには、CU としてログインする必要があります。
構文
aws-cloudhsm >
help key unwrap rsa-oaep
Usage: key unwrap rsa-oaep [OPTIONS] --filter [
<FILTER>
...] --hash-function<HASH_FUNCTION>
--mgf<MGF>
--key-type-class<KEY_TYPE_CLASS>
--label<LABEL>
<--data-path<DATA_PATH>
|--data<DATA>
> Options: --cluster-id<CLUSTER_ID>
Unique Id to choose which of the clusters in the config file to run the operation against. If not provided, will fall back to the value provided when interactive mode was started, or error --filter [<FILTER>
...] Key reference (e.g. key-reference=0xabc) or space separated list of key attributes in the form of attr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE to select a key to unwrap with --data-path<DATA_PATH>
Path to the binary file containing the wrapped key data --data<<DATA>
Base64 encoded wrapped key data --attributes [<UNWRAPPED_KEY_ATTRIBUTES>
...] Space separated list of key attributes in the form of KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE for the unwrapped key --hash-function<HASH_FUNCTION>
Hash algorithm [possible values: sha1, sha224, sha256, sha384, sha512] --mgf<MGF>
Mask Generation Function algorithm [possible values: mgf1-sha1, mgf1-sha224, mgf1-sha256, mgf1-sha384, mgf1-sha512] --key-type-class<KEY_TYPE_CLASS>
Key type and class of wrapped key [possible values: aes, des3, ec-private, generic-secret, rsa-private] --label<LABEL>
Label for the unwrapped key --session Creates a session key that exists only in the current session. The key cannot be recovered after the session ends -h, --help Print help
例
これらの例は、unwrap
属性値が true
に設定された RSA プライベートキーを使用して key unwrap rsa-oaep コマンドを使用する方法を示しています。
例: Base64 でエンコードされたラッピングされたキーデータからペイロードキーのラッピングを解除する
aws-cloudhsm >
key unwrap rsa-oaep --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-example-key --hash-function sha256 --mgf mgf1-sha256 --data OjJe4msobPLz9TuSAdULEu17T5rMDWtSlLyBSkLbaZnYzzpdrhsbGLbwZJCtB/jGkDNdB4qyTAOQwEpggGf6v+Yx6JcesNeKKNU8XZal/YBoHC8noTGUSDI2qr+u2tDc84NPv6d+F2KOONXsSxMhmxzzNG/gzTVIJhOuy/B1yHjGP4mOXoDZf5+7f5M1CjxBmz4Vva/wrWHGCSG0yOaWblEvOiHAIt3UBdyKmU+/My4xjfJv7WGGu3DFUUIZ06TihRtKQhUYU1M9u6NPf9riJJfHsk6QCuSZ9yWThDT9as6i7e3htnyDhIhGWaoK8JU855cN/YNKAUqkNpC4FPL3iw==
{ "data": { "key": { "key-reference": "0x00000000001808e9", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "aes-unwrapped", "id": "0x", "check-value": "0x8d9099", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": false, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } } }
例: データパスを介して提供されたペイロードキーのラッピングを解除する
aws-cloudhsm >
key unwrap rsa-oaep --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-example-key --hash-function sha256 --mgf mgf1-sha256 --data-path payload-key.pem
{ "error_code": 0, "data": { "key": { "key-reference": "0x00000000001808e9", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "aes-unwrapped", "id": "0x", "check-value": "0x8d9099", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": false, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } } }
引数
<CLUSTER_ID>
-
このオペレーションを実行するクラスターの ID。
必須: 複数のクラスターが設定されている場合。
<FILTER>
-
キーリファレンス (例:
key-reference=0xabc
) またはattr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
形式のキー属性のスペース区切りリストを使用して、ラッピングを解除するキーを選択します。必須: はい
<DATA_PATH>
-
ラッピングされたキーデータを含むバイナリファイルへのパス。
必須: はい (Base64 でエンコードされたデータを通じて提供される場合を除く)
<DATA>
-
Base64 でエンコードされたラッピングされたキーデータ。
必須: はい (データパスを通じて提供される場合を除く)
<ATTRIBUTES>
-
ラッピングされたキーの
KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
形式のキー属性のスペース区切りリスト。必須:いいえ
<KEY_TYPE_CLASS>
-
ラッピングされたキーのキータイプとクラス [可能な値:
aes
、des3
、ec-private
、generic-secret
、rsa-private
]。必須: はい
<HASH_FUNCTION>
-
ハッシュ関数を指定します。
有効な値:
sha1
sha224
sha256
sha384
sha512
必須: はい
<MGF>
-
マスク生成関数を指定します。
注記
マスク生成関数のハッシュ関数は、署名メカニズムのハッシュ関数と一致する必要があります。
有効な値:
mgf1-sha1
mgf1-sha224
mgf1-sha256
mgf1-sha384
mgf1-sha512
必須: はい
<LABEL>
-
ラッピングされていないキーのラベル。
必須: はい
<SESSION>
-
現在のセッションにのみ存在するセッションキーを作成します。セッション終了後、キーをリカバリすることはできません。
必須:いいえ