github.com/hyperledger/aries-framework-go@v0.3.2/pkg/doc/util/signature/signature.go (about)

     1  /*
     2  Copyright SecureKey Technologies Inc. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package signature
     8  
     9  import (
    10  	"crypto/ed25519"
    11  	"crypto/elliptic"
    12  
    13  	"github.com/hyperledger/aries-framework-go/component/kmscrypto/doc/jose/jwk"
    14  	"github.com/hyperledger/aries-framework-go/component/models/signature/util"
    15  	cryptoapi "github.com/hyperledger/aries-framework-go/spi/crypto"
    16  	kmsapi "github.com/hyperledger/aries-framework-go/spi/kms"
    17  )
    18  
    19  // Signer defines generic signer.
    20  type Signer = util.Signer
    21  
    22  // NewCryptoSigner creates a new signer based on crypto if possible.
    23  func NewCryptoSigner(crypto cryptoapi.Crypto, kms kmsapi.KeyManager, keyType kmsapi.KeyType) (Signer, error) {
    24  	return util.NewCryptoSigner(crypto, kms, keyType)
    25  }
    26  
    27  // NewSigner creates a new signer.
    28  func NewSigner(keyType kmsapi.KeyType) (Signer, error) {
    29  	return util.NewSigner(keyType)
    30  }
    31  
    32  // GetSigner returns a new Signer based on privateKey.
    33  // For case ed25519.PrivateKey pubKey is nil.
    34  func GetSigner(privateKeyJWK *jwk.JWK) (Signer, error) {
    35  	return util.GetSigner(privateKeyJWK)
    36  }
    37  
    38  // GetEd25519Signer returns Ed25519 Signer with predefined private and public keys.
    39  func GetEd25519Signer(privKey ed25519.PrivateKey, pubKey ed25519.PublicKey) Signer {
    40  	return util.GetEd25519Signer(privKey, pubKey)
    41  }
    42  
    43  // MapECCurveToKeyType makes a mapping of Elliptic Curve to KeyType of kms.
    44  func MapECCurveToKeyType(curve elliptic.Curve) (kmsapi.KeyType, error) {
    45  	return util.MapECCurveToKeyType(curve)
    46  }