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 }