使用非對稱金鑰進行簽名。
介面說明
注意事項
-
RAM 使用者或 RAM 角色調用該 OpenAPI 需要被授與權限策略詳情,請參見存取控制。
-
本介面可以通過共用網關或專屬網關調用。詳細介紹,請參見阿里雲 SDK。
共用網關:通過公網、VPC 網域名稱訪問 KMS,該方式需要開啟公網開關。具體操作,請參見通過公網訪問 KMS 執行個體中的密鑰。
專屬網關:通過 KMS 私網地址(
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com)訪問 KMS。
QPS 限制
通過共用網關調用:本介面的單使用者 QPS 限制為 200 次/秒。超過限制,API 呼叫將會被限流,這可能影響您的業務,請合理調用。
通過專屬網關調用:本介面的單使用者 QPS 限制以您 KMS 執行個體的計算效能規格為準。詳細介紹,請參見效能資料。
詳細說明
僅支援 Usage 為SIGN/VERIFY的非對稱金鑰。支援的簽名演算法如下表:
KeySpec | Algorithm | 說明 |
RSA_2048 | RSA_PSS_SHA_256 | RSASSA-PSS using SHA-256 and MGF1 with SHA-256 |
RSA_2048 | RSA_PKCS1_SHA_256 | RSASSA-PKCS1-v1_5 using SHA-256 |
RSA_3072 | RSA_PSS_SHA_256 | RSASSA-PSS using SHA-256 and MGF1 with SHA-256 |
RSA_3072 | RSA_PKCS1_SHA_256 | RSASSA-PKCS1-v1_5 using SHA-256 |
EC_P256 | ECDSA_SHA_256 | ECDSA on the P-256 Curve(secp256r1) with a SHA-256 digest |
EC_P256K | ECDSA_SHA_256 | ECDSA on the P-256K Curve(secp256k1) with a SHA-256 digest |
EC_SM2 | SM2DSA | SM2 橢圓曲線數位簽章演算法 |
按照國家標準 GB/T 32918.2《資訊安全技術 SM2 橢圓曲線公開金鑰密碼演算法 第 2 部分:數位簽章演算法》,計算 SM2 簽名值時,Digest 參數不是對原始訊息直接計算 SM3 摘要,而是對 Z(A)和 M 的拼接值計算的摘要,其中 M 是待簽名的原始訊息,Z(A)是 GB/T 32918.2 中定義的使用者 A 的雜湊值。
本文將提供一個樣本,使用金鑰識別碼 為5c438b18-05be-40ad-b6c2-3be6752c****、密鑰版本 ID 為2ab1a983-7072-4bbc-a582-584b5bd8****的非對稱金鑰,通過簽名演算法RSA_PSS_SHA_256對摘要資訊ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiuy****=進行簽名。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| KeyId |
string |
是 |
主要金鑰(CMK)的通用唯一識別碼。 說明
該參數也可以被指定為主要金鑰綁定的別名。更多資訊,請參見別名使用說明。 |
5c438b18-05be-40ad-b6c2-3be6752c**** |
| KeyVersionId |
string |
是 |
密鑰版本 ID。密鑰版本的通用唯一識別碼。 |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| Algorithm |
string |
是 |
簽名演算法。 |
RSA_PSS_SHA_256 |
| Digest |
string |
是 |
使用 Algorithm 中對應的雜湊演算法,對原始訊息產生的摘要。 說明
|
ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiu****= |
| DryRun |
string |
否 |
是否開啟 DryRun 模式。
DryRun 模式用於測試 API 呼叫,驗證您是否具有相應資源的許可權,以及請求參數是否配置正確。DryRun 模式開啟後,KMS 會始終返回失敗並提示失敗原因。失敗原因包含如下:
|
false |
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
|
object |
|||
| KeyVersionId |
string |
密鑰版本 ID。密鑰版本的通用唯一識別碼。 |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
主要金鑰的通用唯一識別碼。 說明
如果請求中的 KeyId 參數使用的是主要金鑰的別名,在響應中會返回別名對應的主要金鑰標識符。 |
5c438b18-05be-40ad-b6c2-3be6752c**** |
| Value |
string |
計算出來的簽名。 說明
使用 Base 64 編碼。 |
M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq****== |
| RequestId |
string |
本次調用請求的 ID,是由阿里雲為該請求產生的唯一識別碼,可用於排查和定位問題。 |
475f1620-b9d3-4d35-b5c6-3fbdd941423d |
樣本
正常返回樣本
JSON格式
{
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId": "5c438b18-05be-40ad-b6c2-3be6752c****",
"Value": "M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq****==",
"RequestId": "475f1620-b9d3-4d35-b5c6-3fbdd941423d"
}
錯誤碼
|
HTTP status code |
錯誤碼 |
錯誤資訊 |
描述 |
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter is not valid. | 參數非法。 |
| 404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | 指定的密鑰不存在。 |
| 404 | Forbidden.AliasNotFound | The specified Alias is not found. | 指定的別名找不到 |
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。