After initializing the KMS instance SDK client, you can use it to call the Sign and Verify APIs for signing and verification. This topic provides code examples for this.
Complete example
Example walkthrough
Initialize client
# -*- coding: utf-8 -*-
from openapi.models import Config
from sdk.client import Client
config = Config()
# The connection protocol. Set the value to https. The KMS instance service only allows access through the HTTPS protocol.
config.protocol = "https"
# Client Key.
config.client_key_file = "<CLIENT_KEY_FILE>"
# Client Key decryption password.
config.password = os.getenv('CLIENT_KEY_PASSWORD')
# The endpoint of your KMS instance. Set the value in the following format: <ID of your KMS instance>.cryptoservice.kms.aliyuncs.com.
config.endpoint = "<ENDPOINT>"
client = Client(config)Call the Sign API to perform digital signing using an asymmetric key
def sign(key_id, message, message_type, algorithm):
request = SignRequest()
request.key_id = key_id
request.message = message
request.message_type = message_type
request.algorithm = algorithm
runtime_options = RuntimeOptions()
# Ignore server certificate.
# runtime_options.ignore_ssl = True
# verify indicates the path of the instance CA certificate.
runtime_options.verify = "<CA_CERTIFICATE_FILE_PATH>"
resp = client.sign_with_options(request, runtime_options)
print(resp)
return SignContext(resp.key_id, resp.message_type, resp.signature, resp.algorithm)
Call the Verify API to verify the digital signature using an asymmetric key
def verify(context, message):
request = VerifyRequest()
request.key_id = context.key_id
request.message_type = context.message_type
request.signature = context.signature
request.algorithm = context.algorithm
request.message = message
runtime_options = RuntimeOptions()
# Ignore server certificate.
# runtime_options.ignore_ssl = True
# verify indicates the path of the instance CA certificate.
runtime_options.verify = "<CA_CERTIFICATE_FILE_PATH>"
resp = client.verify_with_options(request, runtime_options)
print(resp)