调用CertificatePublicKeyVerify接口使用指定证书验证数字签名。
请求参数中签名算法需要跟密钥类型对应。签名算法和密钥类型对照表如下:
Algorithm  | 
    Key Spec  | 
   
|---|---|
RSA_PKCS1_SHA_256  | 
    RSA_2048  | 
   
RSA_PSS_SHA_256  | 
    RSA_2048  | 
   
ECDSA_SHA_256  | 
    EC_P256  | 
   
SM2DSA  | 
    EC_SM2  | 
   
本文将提供一个示例,使用ID为12345678-1234-1234-1234-12345678****的证书,通过ECDSA_SHA_256签名算法验证原始数据签名VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=的数字签名值是否为ZOyIygCyaOW6Gj****MlNKiuyjfzw=。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
| 名称 | 类型 | 是否必选 | 示例值 | 描述 | 
|---|---|---|---|---|
| Action | String | 是 | CertificatePublicKeyVerify | 要执行的操作。取值:CertificatePublicKeyVerify。  | 
        
| CertificateId | String | 是 | 12345678-1234-1234-1234-12345678**** | 证书ID。证书管家中证书的全局唯一标识符。  | 
        
| Algorithm | String | 是 | ECDSA_SHA_256 | 签名算法。取值: 
  | 
        
| Message | String | 是 | VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4= | 原始签名数据。 使用Base64编码。例如:原始签名数据的十六进制内容为 当MessageType取值为RAW时,数据内容需小于4KB。 如果待签名数据内容大于4KB,您可以将MessageType指定为DIGEST,将Message指定为本地计算的消息摘要(又称哈希值)。证书管家将使用您自己的证书应用系统计算消息摘要,使用的消息摘要算法须与指定签名算法需要的消息摘要算法保持一致。具体如下: 
 说明 当证书密钥规格为EC_SM2,并且MessageType为DIGEST时,Message值为GB/T 32918.2-2016 6.1中描述的 e。 | 
        
| MessageType | String | 是 | RAW | 消息类型。取值: 
  | 
        
| SignatureValue | String | 是 | ZOyIygCyaOW6Gj****MlNKiuyjfzw= | 签名值。 使用Base64编码。  | 
        
关于公共请求参数的详情,请参见公共参数。
返回数据
| 名称 | 类型 | 示例值 | 描述 | 
|---|---|---|---|
| RequestId | String | 5979d897-d69f-4fc9-87dd-f3bb73c40b80 | 本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。  | 
| CertificateId | String | 12345678-1234-1234-1234-12345678**** | 证书ID。  | 
| SignatureValid | Boolean | true | 验证结果。取值: 
  | 
示例
请求示例
http(s)://[Endpoint]/?Action=CertificatePublicKeyVerify
&CertificateId=12345678-1234-1234-1234-12345678****
&Algorithm=ECDSA_SHA_256
&Message=VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=
&MessageType=RAW
&SignatureValue=ZOyIygCyaOW6Gj****MlNKiuyjfzw=
&公共请求参数
                            正常返回示例
XML格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CertificatePublicKeyVerifyResponse>
    <RequestId>5979d897-d69f-4fc9-87dd-f3bb73c40b80</RequestId>
    <CertificateId>12345678-1234-1234-1234-12345678****</CertificateId>
    <SignatureValid>true</SignatureValid>
</CertificatePublicKeyVerifyResponse>
                                    JSON格式
HTTP/1.1 200 OK
Content-Type:application/json
{
  "RequestId" : "5979d897-d69f-4fc9-87dd-f3bb73c40b80",
  "CertificateId" : "12345678-1234-1234-1234-12345678****",
  "SignatureValid" : true
}
                错误码
| HttpCode | 错误码 | 错误信息 | 描述 | 
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter is not valid. | 参数非法。 | 
| 404 | InvalidAccessKeyId.NotFound | The specified AccessKey ID does not exist. | AccessKey ID不存在。 | 
访问错误中心查看更多错误码。