aboutsummaryrefslogtreecommitdiff
path: root/mocks/crypto.go
diff options
context:
space:
mode:
Diffstat (limited to 'mocks/crypto.go')
-rw-r--r--mocks/crypto.go23
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
+}