-
Notifications
You must be signed in to change notification settings - Fork 199
/
keyGenMock.go
102 lines (84 loc) · 2.88 KB
/
keyGenMock.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package mock
import (
"github.com/ElrondNetwork/elrond-go/crypto"
)
// PrivateKeyMock mocks a private key implementation
type PrivateKeyMock struct {
GeneratePublicMock func() crypto.PublicKey
ToByteArrayMock func() ([]byte, error)
SuiteMock func() crypto.Suite
ScalarMock func() crypto.Scalar
}
// PublicKeyMock mocks a public key implementation
type PublicKeyMock struct {
ToByteArrayMock func() ([]byte, error)
SuiteMock func() crypto.Suite
PointMock func() crypto.Point
}
// KeyGenMock mocks a key generation implementation
type KeyGenMock struct {
GeneratePairMock func() (crypto.PrivateKey, crypto.PublicKey)
PrivateKeyFromByteArrayMock func(b []byte) (crypto.PrivateKey, error)
PublicKeyFromByteArrayMock func(b []byte) (crypto.PublicKey, error)
SuiteMock func() crypto.Suite
}
// GeneratePublic mocks generating a public key from the private key
func (privKey *PrivateKeyMock) GeneratePublic() crypto.PublicKey {
return privKey.GeneratePublicMock()
}
// ToByteArray mocks converting the private key to a byte array
func (privKey *PrivateKeyMock) ToByteArray() ([]byte, error) {
return []byte("privateKeyMock"), nil
}
func (privKey *PrivateKeyMock) Suite() crypto.Suite {
return privKey.SuiteMock()
}
func (privKey *PrivateKeyMock) Scalar() crypto.Scalar {
return privKey.ScalarMock()
}
// IsInterfaceNil returns true if there is no value under the interface
func (privKey *PrivateKeyMock) IsInterfaceNil() bool {
if privKey == nil {
return true
}
return false
}
// ToByteArray mocks converting a public key to a byte array
func (pubKey *PublicKeyMock) ToByteArray() ([]byte, error) {
return []byte("publicKeyMock"), nil
}
func (pubKey *PublicKeyMock) Suite() crypto.Suite {
return pubKey.SuiteMock()
}
func (pubKey *PublicKeyMock) Point() crypto.Point {
return pubKey.PointMock()
}
// IsInterfaceNil returns true if there is no value under the interface
func (pubKey *PublicKeyMock) IsInterfaceNil() bool {
if pubKey == nil {
return true
}
return false
}
// GeneratePair generates a pair of private and public keys
func (keyGen *KeyGenMock) GeneratePair() (crypto.PrivateKey, crypto.PublicKey) {
return keyGen.GeneratePairMock()
}
// PrivateKeyFromByteArray generates the private key from it's byte array representation
func (keyGen *KeyGenMock) PrivateKeyFromByteArray(b []byte) (crypto.PrivateKey, error) {
return keyGen.PrivateKeyFromByteArrayMock(b)
}
// PublicKeyFromByteArrayMock generate a public key from it's byte array representation
func (keyGen *KeyGenMock) PublicKeyFromByteArray(b []byte) (crypto.PublicKey, error) {
return keyGen.PublicKeyFromByteArrayMock(b)
}
func (keyGen *KeyGenMock) Suite() crypto.Suite {
return keyGen.SuiteMock()
}
// IsInterfaceNil returns true if there is no value under the interface
func (keyGen *KeyGenMock) IsInterfaceNil() bool {
if keyGen == nil {
return true
}
return false
}