Classic/VPC環境で利用できます。
キーで暗号化された暗号文を復号します。AES256または RSA2048キータイプでのみリクエストできます。
マスターキーで暗号化されて返されるデータはKMS prefix + 暗号文で構成されています。KMS prefixはncpkms:バージョン情報で構成されていて、復号リクエスト時に指定されたキーバージョンで復号されるため、暗号文と一緒に KMS prefixを正確に明示する必要があります。KMS prefixが正しくないと正確に復号されません。任意に削除したり操作せずに、返された暗号化形式のままで管理してください。
ncpkms:v1:XjsPWPjqPrBi1N2DupSiSbX/ATkGmKA
---------- -------------------------------
KMS prefix 暗号文
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
| メソッド | URI |
|---|---|
| POST |
|
リクエストヘッダ
Key Management Service APIで共通して使用されるヘッダの詳細は、Key Management Serviceのリクエストヘッダをご参照ください。
リクエストパスパラメータ
リクエストパスパラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
keyTag |
String | Required | キータグ
|
リクエストボディ
リクエストボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
ciphertext |
Stringまたは Array[String] | Required | 平文を暗号化して作成された文字列データ |
context |
String | Conditional | Base64でエンコードされた文字列データ
|
リクエスト例
リクエストのサンプルコードは次の通りです。
- API Gateway request signature v1と
ciphertextを Stringタイプでリクエスト
curl --location --request POST 'https://kms.apigw.ntruss.com/keys/v1/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/decrypt' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-apigw-api-key: {API Gateway API Key}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v1: {API Gateway Signature}' \
--data '{
"ciphertext": "{CIPHERTEXT}",
"context": "{BASE64_CONTEXT}"
}'
- API Gateway request signature v2と
ciphertextを Array[String]タイプでリクエスト
curl --location --request POST 'https://kms.apigw.ntruss.com/keys/v2/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/decrypt' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--data '{
"ciphertext": ["{CIPHERTEXT_1}", "{CIPHERTEXT_2}", "{CIPHERTEXT_3}"],
"context": "{BASE64_CONTEXT}"
}'
レスポンス
レスポンス形式を説明します。
レスポンスボディ
レスポンスボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
code |
String | - | 成功したかどうか |
msg |
String | - | レスオンスコード(code)の説明
|
data |
Object | - | レスポンス結果 |
data.plaintext |
Stringまたは Array[String] | - | 復号された文字列データ
|
レスポンスステータスコード
Key Management Service APIで共通して使用されるレスポンスステータスコードの詳細は、Key Management Serviceのレスポンスステータスコードをご参照ください。
レスポンス例
レスポンスのサンプルコードは次の通りです。
ciphertextを Stringタイプでリクエスト
{
"code": "SUCCESS",
"msg": "",
"data": {
"plaintext": "{BASE64_PLAINTEXT}"
}
}
ciphertextを Array[String]タイプでリクエスト
{
"code": "SUCCESS",
"msg": "",
"data": {
"plaintext": [
"{BASE64_PLAINTEXT_1}",
"{BASE64_PLAINTEXT_2}",
"{BASE64_PLAINTEXT_3}"
]
}
}
RSA2048公開鍵で暗号化したデータの復号
RSA2048の場合、NAVERクラウドプラットフォーム KMS APIを呼び出さずに公開鍵で直接暗号化したデータであっても、Encryptに明記された条件と同様に暗号化されていれば、この APIで復号できます。
復号をリクエストする際は、RSA暗号文を Base64でエンコードした後、KMS暗号文識別接頭辞を付けてciphertextとして渡します。
ncpkms:v{キーバージョン}:{Base64(RSA暗号文)}
公開鍵の照会および暗号化の例はGet Public Keyをご参照ください。
Decryptは暗号化時に使用されたパラメータで KMSが復号するため、アルゴリズムパラメータを別途指定する必要はありません。公開鍵で直接暗号化したデータを復号する場合は、パラメータを一致させる必要があります。詳細は、Encryptの暗号化パラメータをご参照ください。