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  }