调用Verify接口使用非对称密钥进行验签。

使用说明

不同密钥规格对应的签名算法如下表所示。

密钥规格签名算法说明
  • RSA_2048
  • RSA_3072
  • RSA_4096
RSA_PSS_SHA_256(默认值)RSA签名,按照RFC 3447/PKCS#1中定义的RSASSA-PSS模式,使用SHA-256算法(对签名消息计算杂凑值)和MGF1(SHA-256)。
RSA_PKCS1_SHA_256RSA签名,按照 RFC 3447/PKCS#1中定义的RSASSA-PKCS1-v1_5模式,对签名消息使用SHA-256算法计算杂凑值。
  • EC_P256
  • EC_P256K
ECDSA_SHA_256(默认值)ECDSA数字签名,使用SHA-256杂凑算法。
EC_SM2SM2DSA(默认值)SM2椭圆曲线数字签名算法。

请求消息定义

message VerifyRequest {
     string KeyId = 1;
     bytes Signature = 2;
     string Algorithm = 3;
     bytes Message = 4;
     string MessageType = 5;
}

请求参数

名称类型是否必选示例值描述
KeyIdstring1234abcd-12ab-34cd-56ef-12345678****主密钥(CMK)的全局唯一标识符。该参数也可以被指定为CMK绑定的别名。
Algorithm stringRSAES_OAEP_SHA_256签名算法,取值:
  • RSA_PSS_SHA_256
  • RSA_PKCS1_SHA_256
  • ECDSA_SHA_256
  • SM2DSA
说明 签名算法需要与Sign接口返回的算法保持一致。
MessageTypestringRAW消息类型,取值:
  • RAW(默认值):原始数据。
  • DIGEST:原始数据的消息摘要。KMS不会对原始数据的消息摘要进行数据处理,将直接使用私钥进行签名。
Messagebytes二进制数据验签消息。
  • 当MessageType取值为RAW时:如果指定原始签名数据,会使用Algorithm中对应的哈希算法,对原始消息生成摘要,之后再进行签名。
  • 当MessageType取值为DIGEST时:最大长度为32字节。
Signaturebytes二进制数据待验证的签名值。

响应消息定义

message VerifyResponse {
     string KeyId = 1;
     bool Value = 2;
     string RequestId = 3;
     string Algorithm = 4;
     string MessageType = 5;
}

响应数据

名称类型示例值描述
Valuebooltrue签名验证是否通过。取值:
  • true:签名验证通过。
  • false:签名验证未通过。
KeyIdstring1234abcd-12ab-34cd-56ef-12345678****CMK的全局唯一标识符。如果请求中的KeyId参数使用的是CMK的别名,在响应中会返回别名对应的CMK标识符。
AlgorithmstringRSAES_OAEP_SHA_256签名算法。
MessageTypestringRAW消息类型。
RequestIdstring475f1620-b9d3-4d35-b5c6-3fbdd941423d请求ID。

错误码

关于错误码的更多信息,请参见公共错误码