Skip to content

Commit 777f4c6

Browse files
Lagovasvixentael
authored andcommitted
encapsulate wrappers from local midhermes (#119)
* encapsulate store wrappers and expect only interfaces to initialize midhermes * fix indentation
1 parent d5a8a27 commit 777f4c6

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

gohermes/midhermes/local/local_mid_hermes.go

+18-3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"errors"
2626
"runtime"
2727
"unsafe"
28+
"github.com/cossacklabs/hermes-core/gohermes"
2829
)
2930

3031
type LocalMidHermes struct {
@@ -39,12 +40,26 @@ func finalizeLocalMidHermes(mid_hermes *LocalMidHermes) {
3940
mid_hermes.Close()
4041
}
4142

42-
func NewLocalMidHermes(id []byte, private_key []byte, credentialStore *MidHermesCredentialStore, keyStore *MidHermesKeyStore, dataStore *MidHermesDataStore) (*LocalMidHermes, error) {
43-
mh := &LocalMidHermes{credentialStore: credentialStore, keyStore: keyStore, dataStore: dataStore}
43+
func NewLocalMidHermes(id []byte, private_key []byte, credentialStore gohermes.CredentialStore, keyStore gohermes.KeyStore, dataStore gohermes.DataStore) (*LocalMidHermes, error) {
44+
credentialWrapper, err := NewCredentialStore(credentialStore)
45+
if err != nil{
46+
return nil, err
47+
}
48+
keystoreWrapper, err := NewKeyStore(keyStore)
49+
if err != nil{
50+
return nil, err
51+
}
52+
datastoreWrapper, err := NewDataStore(dataStore)
53+
if err != nil{
54+
return nil, err
55+
}
56+
mh := &LocalMidHermes{credentialStore: credentialWrapper, keyStore: keystoreWrapper, dataStore: datastoreWrapper}
4457
mh.mid_hermes = C.mid_hermes_create_with_services(
4558
(*C.uint8_t)(unsafe.Pointer(&id[0])), C.size_t(len(id)),
4659
(*C.uint8_t)(unsafe.Pointer(&private_key[0])), C.size_t(len(private_key)),
47-
(*C.hermes_key_store_t)(unsafe.Pointer(keyStore.GetHermesKeyStore())), (*C.hermes_data_store_t)(unsafe.Pointer(dataStore.GetHermesDataStore())), (*C.hermes_credential_store_t)(unsafe.Pointer(credentialStore.GetHermesCredentialStore())))
60+
(*C.hermes_key_store_t)(unsafe.Pointer(keystoreWrapper.GetHermesKeyStore())),
61+
(*C.hermes_data_store_t)(unsafe.Pointer(datastoreWrapper.GetHermesDataStore())),
62+
(*C.hermes_credential_store_t)(unsafe.Pointer(credentialWrapper.GetHermesCredentialStore())))
4863
if nil == mh.mid_hermes {
4964
return mh, errors.New("LocalMidHermes object creation error")
5065
}

gohermes/midhermes/local/local_mid_hermes_test.go

+1-17
Original file line numberDiff line numberDiff line change
@@ -106,23 +106,7 @@ func (store *SimpleDataStore) DeleteBlock(id []byte, oldMac []byte) error { retu
106106
func (store *SimpleDataStore) Close() error { return nil }
107107

108108
func TestNewLocalMidHermes(t *testing.T) {
109-
credentialStore := &SimpleCredentialStore{}
110-
midhermesCredentialStore, err := NewCredentialStore(credentialStore)
111-
if err != nil {
112-
t.Fatal(err)
113-
}
114-
115-
midhermesKeyStore, err := NewKeyStore(&SimpleKeyStore{})
116-
if err != nil {
117-
t.Fatal(err)
118-
}
119-
120-
midhermesDataStore, err := NewDataStore(&SimpleDataStore{})
121-
if err != nil {
122-
t.Fatal(err)
123-
}
124-
125-
hermesWrapper, err := NewLocalMidHermes(userId, userPrivateKey, midhermesCredentialStore, midhermesKeyStore, midhermesDataStore)
109+
hermesWrapper, err := NewLocalMidHermes(userId, userPrivateKey, &SimpleCredentialStore{}, &SimpleKeyStore{}, &SimpleDataStore{})
126110
if err != nil {
127111
t.Fatal(err)
128112
}

0 commit comments

Comments
 (0)