最新のコンテンツが反映されていません。早急にアップデート内容をご提供できるよう努めております。最新のコンテンツ内容は韓国語ページをご参照ください。
Classic/VPC環境で利用できます。
最大8KBサイズのデータ署名を作成します。RSA2048または ECDSAキータイプでのみリクエストできます。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
| メソッド | URI |
|---|---|
| POST |
|
リクエストヘッダ
Key Management Service APIで共通して使用されるヘッダの詳細は、Key Management Serviceのリクエストヘッダをご参照ください。
リクエストパスパラメータ
リクエストパスパラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
keyTag |
String | Required | キータグ
|
リクエストボディ
リクエストボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
data |
String | Required | 署名作成対象の、Base64でエンコードされた文字列データ
|
リクエスト例
リクエストのサンプルコードは次の通りです。
- API Gateway request signature v1リクエスト
curl --location --request POST 'https://kms.apigw.ntruss.com/keys/v1/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/sign' \
--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 '{
"data": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=="
}'
- API Gateway request signature v2リクエスト
curl --location --request POST 'https://kms.apigw.ntruss.com/keys/v2/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/sign \
--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 '{
"data": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=="
}'
レスポンス
レスポンス形式を説明します。
レスポンスボディ
レスポンスボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
code |
String | - | 成功したかどうか |
msg |
String | - | レスオンスコード(code)の説明
|
data |
Object | - | レスポンス結果 |
data.signature |
String | - | 作成された署名 |
レスポンスステータスコード
Key Management Service APIで共通して使用されるレスポンスステータスコードの詳細は、Key Management Serviceのレスポンスステータスコードをご参照ください。
レスポンス例
レスポンスのサンプルコードは次の通りです。
{
"code": "SUCCESS",
"msg": "",
"data": {
"signature": "{SIGNATURE}"
}
}
署名パラメータ
キータイプ別の署名アルゴリズムパラメータは次の通りです。
| キータイプ | 署名アルゴリズム | ハッシュ | MGF | Salt長 | Trailer field | 署名値のエンコーディング |
|---|---|---|---|---|---|---|
RSA2048 |
RSASSA-PSS | SHA-256 | MGF1(SHA-256) | 222バイト | 1 | 固定256バイト |
ECDSA |
SHA256withECDSA | SHA-256 | - | - | - | ASN.1 DER |
- Salt長222バイトはRSA-PSSの最大Salt長であり、
ceil((2048 - 1) / 8) - 32 - 2 = 222で算出されます。 - 署名対象は、リクエストボディの
dataをBase64デコードした元のバイト列です。
署名値の形式
data.signatureは次の形式の文字列です。
ncpkms:v{キーバージョン}:{Base64でエンコードされた署名値}
Verifyをリクエストする際は、上記の形式をそのまま渡す必要があります。一方、公開鍵を照会して直接検証する場合は、ncpkms:v{キーバージョン}:のプレフィックスを除去してからBase64デコードする必要があります。
参考
公開鍵で直接検証する場合は、上記の署名パラメータを同様に指定する必要があります。OpenSSL、Go、Node.jsは検証時に署名値からSalt長を自動的に推論しますが、Java(JCA)は自動推論をサポートしないため、PSSParameterSpecにSalt長を必ず明示する必要があります。署名パラメータを直接合わせる必要がないようにするには、Verifyをご利用ください。