@@ -25,6 +25,7 @@ import (
25
25
"errors"
26
26
"runtime"
27
27
"unsafe"
28
+ "github.com/cossacklabs/hermes-core/gohermes"
28
29
)
29
30
30
31
type LocalMidHermes struct {
@@ -39,12 +40,26 @@ func finalizeLocalMidHermes(mid_hermes *LocalMidHermes) {
39
40
mid_hermes .Close ()
40
41
}
41
42
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 }
44
57
mh .mid_hermes = C .mid_hermes_create_with_services (
45
58
(* C .uint8_t )(unsafe .Pointer (& id [0 ])), C .size_t (len (id )),
46
59
(* 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 ())))
48
63
if nil == mh .mid_hermes {
49
64
return mh , errors .New ("LocalMidHermes object creation error" )
50
65
}
0 commit comments