func (c *Crypto) VerifyMulti(messages [][]byte, signature []byte, kh interface{}) error {
	return c.BBSVerifyErr
}
VerifyMulti returns a mocked BBS+ verify result.
returns:
error in case of errors or nil if signature verification was successful
package crypto
import (
	cryptoapi "github.com/hyperledger/aries-framework-go/pkg/crypto"
)
type SignFunc func([]byte, interface{}) ([]byte, error)
type BBSSignFunc func([][]byte, interface{}) ([]byte, error)
type DeriveProofFunc func([][]byte, []byte, []byte, []int, interface{}) ([]byte, error)
type Crypto struct {
	EncryptValue      []byte
	EncryptNonceValue []byte
	EncryptErr        error
	DecryptValue      []byte
	DecryptErr        error
	SignValue         []byte
	SignKey           []byte
	SignFn            SignFunc
	SignErr           error
	VerifyErr         error
	ComputeMACValue   []byte
	ComputeMACErr     error
	VerifyMACErr      error
	WrapValue         *cryptoapi.RecipientWrappedKey
	WrapError         error
	UnwrapValue       []byte
	UnwrapError       error
	BBSSignValue      []byte
	BBSSignKey        []byte
	BBSSignFn         BBSSignFunc
	BBSSignErr        error
	BBSVerifyErr      error
	VerifyProofErr    error
	DeriveProofValue  []byte
	DeriveProofKey    []byte
	DeriveProofFn     DeriveProofFunc
	DeriveProofError  error
}
func (c *Crypto) Encrypt(msg, aad []byte, kh interface{}) ([]byte, []byte, error) {
	return c.EncryptValue, c.EncryptNonceValue, c.EncryptErr
}
func (c *Crypto) Decrypt(cipher, aad, nonce []byte, kh interface{}) ([]byte, error) {
	return c.DecryptValue, c.DecryptErr
}
func (c *Crypto) Sign(msg []byte, kh interface{}) ([]byte, error) {
	if c.SignFn != nil {
		return c.SignFn(msg, c.SignKey)
	}
	return c.SignValue, c.SignErr
}
func (c *Crypto) Verify(signature, msg []byte, kh interface{}) error {
	return c.VerifyErr
}
func (c *Crypto) ComputeMAC(data []byte, kh interface{}) ([]byte, error) {
	return c.ComputeMACValue, c.ComputeMACErr
}
func (c *Crypto) VerifyMAC(mac, data []byte, kh interface{}) error {
	return c.VerifyMACErr
}
func (c *Crypto) WrapKey(cek, apu, apv []byte, recPubKey *cryptoapi.PublicKey,
	wrapKeyOpts ...cryptoapi.WrapKeyOpts) (*cryptoapi.RecipientWrappedKey, error) {
	return c.WrapValue, c.WrapError
}
func (c *Crypto) UnwrapKey(recWK *cryptoapi.RecipientWrappedKey, kh interface{},
	wrapKeyOpts ...cryptoapi.WrapKeyOpts) ([]byte, error) {
	return c.UnwrapValue, c.UnwrapError
}
func (c *Crypto) SignMulti(messages [][]byte, kh interface{}) ([]byte, error) {
	if c.BBSSignFn != nil {
		return c.BBSSignFn(messages, c.BBSSignKey)
	}
	return c.BBSSignValue, c.BBSSignErr
}