最新のコンテンツが反映されていません。早急にアップデート内容をご提供できるよう努めております。最新のコンテンツ内容は韓国語ページをご参照ください。
Classic/VPC環境で利用できます。
キーの現在のバージョンで、最大32KBサイズのデータを暗号化します。AES256または RSA2048キータイプでのみリクエストできます。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
| メソッド | URI |
|---|---|
| POST |
|
リクエストヘッダ
Key Management Service APIで共通して使用されるヘッダの詳細は、Key Management Serviceのリクエストヘッダをご参照ください。
リクエストパスパラメータ
リクエストパスパラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
keyTag |
String | Required | キータグ
|
リクエストボディ
リクエストボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
plaintext |
Stringまたは Array[String] | Required | Base64でエンコードされた文字列データ
|
context |
String | Conditional | Base64でエンコードされた文字列データ
|
リクエスト例
リクエストのサンプルコードは次の通りです。
- API Gateway request signature v1と
plaintextを Stringタイプでリクエスト
curl --location --request POST 'https://kms.apigw.ntruss.com/keys/v1/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/encrypt' \
--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 '{
"plaintext": "{BASE64_PLAINTEXT}",
"context": "{BASE64_CONTEXT}"
}'
- API Gateway request signature v2と
plaintextを Array[String]タイプでリクエスト
curl --location --request POST 'https://kms.apigw.ntruss.com/keys/v2/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/encrypt' \
--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 '{
"plaintext": ["{BASE64_PLAINTEXT_1}", "{BASE64_PLAINTEXT_2}", "{BASE64_PLAINTEXT_3}"],
"context": "{BASE64_CONTEXT}"
}'
レスポンス
レスポンス形式を説明します。
レスポンスボディ
レスポンスボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
code |
String | - | 成功したかどうか |
msg |
String | - | レスオンスコード(code)の説明
|
data |
Object | - | レスポンス結果 |
data.ciphertext |
String | - | 平文を暗号化して作成された文字列データ |
レスポンスステータスコード
Key Management Service APIで共通して使用されるレスポンスステータスコードの詳細は、Key Management Serviceのレスポンスステータスコードをご参照ください。
レスポンス例
レスポンスのサンプルコードは次の通りです。
plaintextを Stringタイプでリクエスト
{
"code": "SUCCESS",
"msg": "",
"data": {
"ciphertext": "{CIPHERTEXT}"
}
}
plaintextを Array[String]タイプでリクエスト
{
"code": "SUCCESS",
"msg": "",
"data": {
"ciphertext": [
"{CIPHERTEXT_1}",
"{CIPHERTEXT_2}",
"{CIPHERTEXT_3}"
]
}
}
RSA2048公開鍵で直接暗号化する場合に知っておくべきこと
RSA2048キーの暗号化アルゴリズムパラメータは次の通りです。
| 項目 | 値 |
|---|---|
| アルゴリズム | RSAES-OAEP |
| OAEPハッシュ | SHA-256 |
| MGF | MGF1 with SHA-256 |
| Label | なし |
| 平文の最大サイズ | 190 bytes |
Javaのパラメータ定義例は次の通りです。
OAEPParameterSpec spec = new OAEPParameterSpec(
"SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT);
NCP KMSは国内暗号推奨基準によりOAEP-SHA1をサポートせず、上記のスペック単一方式でのみ動作するため、暗号化・復号化リクエスト時に別途アルゴリズムパラメータを指定する必要はありません。KMS APIを呼び出さずに公開鍵で直接暗号化したデータも、上記の条件と同様に暗号化していればDecryptで復号化できます。公開鍵の照会と暗号化例はGet Public Keyをご参照ください。