github.com/bigzoro/my_simplechain@v0.0.0-20240315012955-8ad0a2a29bb9/core/access_contoller/crypto/tencentcloudkms/signer.go (about) 1 /* 2 Copyright (C) THL A29 Limited, a Tencent company. All rights reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package tencentcloudkms 8 9 import ( 10 "crypto" 11 "io" 12 13 bccrypto "chainmaker.org/chainmaker/common/v2/crypto" 14 ) 15 16 type Signer struct { 17 kmsPrivateKey *PrivateKey 18 } 19 20 func (signer *Signer) Public() crypto.PublicKey { 21 return signer.kmsPrivateKey.PublicKey().ToStandardKey() 22 } 23 24 func (signer *Signer) Sign(rand io.Reader, digest []byte, opts crypto.SignerOpts) (signature []byte, err error) { 25 return signer.kmsPrivateKey.SignWithOpts(digest, &bccrypto.SignOpts{ 26 Hash: bccrypto.HASH_TYPE_SM3, 27 UID: bccrypto.CRYPTO_DEFAULT_UID, 28 }) 29 }