-
Notifications
You must be signed in to change notification settings - Fork 199
/
cryptoComponentsMock.go
86 lines (72 loc) · 2.01 KB
/
cryptoComponentsMock.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
package mock
import (
"sync"
"github.com/ElrondNetwork/elrond-go-crypto"
)
// CryptoComponentsMock -
type CryptoComponentsMock struct {
BlockSig crypto.SingleSigner
TxSig crypto.SingleSigner
MultiSig crypto.MultiSigner
PeerSignHandler crypto.PeerSignatureHandler
BlKeyGen crypto.KeyGenerator
TxKeyGen crypto.KeyGenerator
PubKey crypto.PublicKey
mutMultiSig sync.RWMutex
}
// BlockSigner -
func (ccm *CryptoComponentsMock) BlockSigner() crypto.SingleSigner {
return ccm.BlockSig
}
// TxSingleSigner -
func (ccm *CryptoComponentsMock) TxSingleSigner() crypto.SingleSigner {
return ccm.TxSig
}
// MultiSigner -
func (ccm *CryptoComponentsMock) MultiSigner() crypto.MultiSigner {
ccm.mutMultiSig.RLock()
defer ccm.mutMultiSig.RUnlock()
return ccm.MultiSig
}
// SetMultiSigner -
func (ccm *CryptoComponentsMock) SetMultiSigner(multiSigner crypto.MultiSigner) error {
ccm.mutMultiSig.Lock()
ccm.MultiSig = multiSigner
ccm.mutMultiSig.Unlock()
return nil
}
// PeerSignatureHandler returns the peer signature handler
func (ccm *CryptoComponentsMock) PeerSignatureHandler() crypto.PeerSignatureHandler {
ccm.mutMultiSig.RLock()
defer ccm.mutMultiSig.RUnlock()
return ccm.PeerSignHandler
}
// BlockSignKeyGen -
func (ccm *CryptoComponentsMock) BlockSignKeyGen() crypto.KeyGenerator {
return ccm.BlKeyGen
}
// TxSignKeyGen -
func (ccm *CryptoComponentsMock) TxSignKeyGen() crypto.KeyGenerator {
return ccm.TxKeyGen
}
// PublicKey -
func (ccm *CryptoComponentsMock) PublicKey() crypto.PublicKey {
return ccm.PubKey
}
// Clone -
func (ccm *CryptoComponentsMock) Clone() interface{} {
return &CryptoComponentsMock{
BlockSig: ccm.BlockSig,
TxSig: ccm.TxSig,
MultiSig: ccm.MultiSig,
PeerSignHandler: ccm.PeerSignHandler,
BlKeyGen: ccm.BlKeyGen,
TxKeyGen: ccm.TxKeyGen,
PubKey: ccm.PubKey,
mutMultiSig: sync.RWMutex{},
}
}
// IsInterfaceNil -
func (ccm *CryptoComponentsMock) IsInterfaceNil() bool {
return ccm == nil
}