diff options
Diffstat (limited to 'mocks/crypto.go')
-rw-r--r-- | mocks/crypto.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/mocks/crypto.go b/mocks/crypto.go new file mode 100644 index 0000000..87c883a --- /dev/null +++ b/mocks/crypto.go @@ -0,0 +1,23 @@ +package mocks + +import ( + "crypto" + "crypto/ed25519" + "io" +) + +// TestSign implements the signer interface. It can be used to mock an Ed25519 +// signer that always return the same public key, signature, and error. +type TestSigner struct { + PublicKey *[ed25519.PublicKeySize]byte + Signature *[ed25519.SignatureSize]byte + Error error +} + +func (ts *TestSigner) Public() crypto.PublicKey { + return ed25519.PublicKey(ts.PublicKey[:]) +} + +func (ts *TestSigner) Sign(rand io.Reader, digest []byte, opts crypto.SignerOpts) ([]byte, error) { + return ts.Signature[:], ts.Error +} |