func (c *CryptoSuite) Verify(k apicryptosuite.Key, signature, digest []byte, opts apicryptosuite.SignerOpts) (valid bool, err error) {
	return c.BCCSP.Verify(k.(*key).key, signature, digest, opts)
}
Verify is a wrapper of BCCSP.Verify
package wrapper
import (
	"hash"
	"github.com/hyperledger/fabric-sdk-go/api/apicryptosuite"
	"github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/bccsp"
	"github.com/hyperledger/fabric-sdk-go/pkg/logging"
)
var logger = logging.NewLogger("fabric_sdk_go")
func NewCryptoSuite(bccsp bccsp.BCCSP) apicryptosuite.CryptoSuite {
	return &CryptoSuite{
		BCCSP: bccsp,
	}
}
func GetKey(newkey bccsp.Key) apicryptosuite.Key {
	return &key{newkey}
}
type CryptoSuite struct {
	BCCSP bccsp.BCCSP
}
func (c *CryptoSuite) KeyGen(opts apicryptosuite.KeyGenOpts) (k apicryptosuite.Key, err error) {
	key, err := c.BCCSP.KeyGen(opts)
	return GetKey(key), err
}
func (c *CryptoSuite) KeyImport(raw interface{}, opts apicryptosuite.KeyImportOpts) (k apicryptosuite.Key, err error) {
	key, err := c.BCCSP.KeyImport(raw, opts)
	return GetKey(key), err
}
func (c *CryptoSuite) GetKey(ski []byte) (k apicryptosuite.Key, err error) {
	key, err := c.BCCSP.GetKey(ski)
	return GetKey(key), err
}
func (c *CryptoSuite) Hash(msg []byte, opts apicryptosuite.HashOpts) (hash []byte, err error) {
	return c.BCCSP.Hash(msg, opts)
}
func (c *CryptoSuite) GetHash(opts apicryptosuite.HashOpts) (h hash.Hash, err error) {
	return c.BCCSP.GetHash(opts)
}
func (c *CryptoSuite) Sign(k apicryptosuite.Key, digest []byte, opts apicryptosuite.SignerOpts) (signature []byte, err error) {
	return c.BCCSP.Sign(k.(*key).key, digest, opts)
}