Signature Verification

NOTE

Data and Hash should be base64 encoded.

Go

data := byte[]("Hello World!")
keyId := <Key UUID>
verifyReq := sdkms.VerifyRequest{
            Signature: byte[](<signature in bytes>),
            Key: sdkms.SobjectById(keyId),
            HashAlg: sdkms.DigestAlgorithmSha256,
            Data: &data,
}
verifyResp, err := client.Verify(ctx, verifyReq)
verifyResp.Result #true or false for verification

Java

String data = "Hello World!";
VerifyRequest verifyRequest = new VerifyRequest()
          .hashAlg(DigestAlgorithm.SHA256)
          .data(data.getBytes())
          .signature(<signature as bytes>; 
VerifyResponse verifyResponse = SignAndVerifyApi().verify(<Key UUID>, verifyRequest);
verifyResponse.result; // true or false for verification

Python

api_instance = sdkms.v1.SignAndVerifyApi (api_client=client)
String data = "Hello World!"
request = sdkms.v1.VerifyRequest(
     (hash_alg= DigestAlgorithm.SHA256, data=data.encode(), signature=)
verify_response = api_instance.verify(kid, request)
verify_response.result # true or false for verification

REST API using curl

$ echo "Hello World!" | base64
SGVsbG8gV29ybGQhCg==

$ curl <Endpoint URL>/crypto/v1/verify -H 'Authorization: Bearer YhXwwa-6C...ig5g' -d '{"key": {"kid": "Key-UUID"}, "hash_alg": "SHA256", "data": "SGVsbG8gV29ybGQhCg==", "signature": "Y25lYm4gdmVidm...llamJ2ZWlqYgo=="}}'

{"result": true}