Skip to content
Snippets Groups Projects
Commit 79557b64 authored by Alexey Kuklin's avatar Alexey Kuklin
Browse files

Merge branch 'master' into 'localbuild'

Master

See merge request !48
parents bd258798 7325e671
No related branches found
No related tags found
3 merge requests!53Localbuild,!50Localbuild,!48Master
...@@ -6,10 +6,6 @@ ...@@ -6,10 +6,6 @@
name = "github.com/hashicorp/go-retryablehttp" name = "github.com/hashicorp/go-retryablehttp"
version = "=v0.5.4" version = "=v0.5.4"
[[constraint]]
name = "github.com/golang/protobuf"
version = "1.1.0"
[[constraint]] [[constraint]]
branch = "master" branch = "master"
name = "golang.org/x/net" name = "golang.org/x/net"
......
...@@ -45,7 +45,7 @@ func (s *KeyStorageServerImpl) GenerateCertificate(ctx context.Context, in *api. ...@@ -45,7 +45,7 @@ func (s *KeyStorageServerImpl) GenerateCertificate(ctx context.Context, in *api.
Content: certificateBytes, Content: certificateBytes,
} }
result, errors, err := client.DoPutDataCall("keys", in.Uuid+"/"+api.KeyType.String(api.KeyType_CERTIFICATE), certificateMessage, versions.EntitiesManagementAgentApiVersion) result, errors, err := client.PutData("keys", in.Uuid+"/"+api.KeyType.String(api.KeyType_CERTIFICATE), certificateMessage)
generateCertificateResponse.StatusList = handlePutDataErrors(generateCertificateResponse.StatusList, errors, err) generateCertificateResponse.StatusList = handlePutDataErrors(generateCertificateResponse.StatusList, errors, err)
if generateCertificateResponse.StatusList == nil || len(generateCertificateResponse.StatusList) == 0 { if generateCertificateResponse.StatusList == nil || len(generateCertificateResponse.StatusList) == 0 {
......
...@@ -30,7 +30,6 @@ import ( ...@@ -30,7 +30,6 @@ import (
keyutils "code.vereign.com/code/key-storage-agent/utils" keyutils "code.vereign.com/code/key-storage-agent/utils"
"code.vereign.com/code/viam-apis/key-storage-agent/api" "code.vereign.com/code/viam-apis/key-storage-agent/api"
"code.vereign.com/code/viam-apis/utils" "code.vereign.com/code/viam-apis/utils"
"code.vereign.com/code/viam-apis/versions"
"golang.org/x/net/context" "golang.org/x/net/context"
) )
...@@ -73,22 +72,19 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context, ...@@ -73,22 +72,19 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context,
return generateKeyPairResponse, nil return generateKeyPairResponse, nil
} }
encryptedPrivateKey := &api.Key{Content: encryptedPrivateKeyBytes} encryptedPrivateKey := &api.Key{Content: encryptedPrivateKeyBytes}
result, errors, err := client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_PRIVATE), result, errors, err := client.PutData("keys", uuid+"/"+api.KeyType.String(api.KeyType_PRIVATE), encryptedPrivateKey)
encryptedPrivateKey, versions.EntitiesManagementAgentApiVersion)
generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err) generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err)
if generateKeyPairResponse.StatusList == nil || len(generateKeyPairResponse.StatusList) == 0 { if generateKeyPairResponse.StatusList == nil || len(generateKeyPairResponse.StatusList) == 0 {
publicKey := &api.Key{Content: publicKeyBytes} publicKey := &api.Key{Content: publicKeyBytes}
result, errors, err = client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_PUBLIC), result, errors, err = client.PutData("keys", uuid+"/"+api.KeyType.String(api.KeyType_PUBLIC), publicKey)
publicKey, versions.EntitiesManagementAgentApiVersion)
generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err) generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err)
} }
//duplicate logic of ReserveKeyUUID //duplicate logic of ReserveKeyUUID
if generateKeyPairResponse.StatusList == nil || len(generateKeyPairResponse.StatusList) == 0 { if generateKeyPairResponse.StatusList == nil || len(generateKeyPairResponse.StatusList) == 0 {
emptyKey := &api.Key{Content: []byte{}} emptyKey := &api.Key{Content: []byte{}}
result, errors, err = client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_CERTIFICATE), result, errors, err = client.PutData("keys", uuid+"/"+api.KeyType.String(api.KeyType_CERTIFICATE), emptyKey)
emptyKey, versions.EntitiesManagementAgentApiVersion)
generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err) generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err)
} }
...@@ -103,7 +99,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context, ...@@ -103,7 +99,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context,
encryptedAesKey := &api.Key{Content: encryptedAesKeyBytes} encryptedAesKey := &api.Key{Content: encryptedAesKeyBytes}
result, errors, err = client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_AES), encryptedAesKey, versions.EntitiesManagementAgentApiVersion) result, errors, err = client.PutData("keys", uuid+"/"+api.KeyType.String(api.KeyType_AES), encryptedAesKey)
generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err) generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err)
} }
...@@ -118,7 +114,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context, ...@@ -118,7 +114,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context,
encryptedNonce := &api.Key{Content: encryptedPrivateKeyNonceBytes} encryptedNonce := &api.Key{Content: encryptedPrivateKeyNonceBytes}
result, errors, err = client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_NONCE), encryptedNonce, versions.EntitiesManagementAgentApiVersion) result, errors, err = client.PutData("keys", uuid+"/"+api.KeyType.String(api.KeyType_NONCE), encryptedNonce)
generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err) generateKeyPairResponse.StatusList = keyutils.HandlePutDataErrors(generateKeyPairResponse.StatusList, errors, err)
} }
......
...@@ -22,10 +22,7 @@ import ( ...@@ -22,10 +22,7 @@ import (
"errors" "errors"
"log" "log"
"strings" "strings"
"code.vereign.com/code/viam-apis/clientutils" "code.vereign.com/code/viam-apis/clientutils"
"code.vereign.com/code/viam-apis/versions"
"github.com/golang/protobuf/proto"
keyutils "code.vereign.com/code/key-storage-agent/utils" keyutils "code.vereign.com/code/key-storage-agent/utils"
"code.vereign.com/code/viam-apis/authentication" "code.vereign.com/code/viam-apis/authentication"
...@@ -100,25 +97,33 @@ func (s *KeyStorageServerImpl) GetKey(ctx context.Context, in *api.GetKeyRequest ...@@ -100,25 +97,33 @@ func (s *KeyStorageServerImpl) GetKey(ctx context.Context, in *api.GetKeyRequest
return getKeyResponse, nil return getKeyResponse, nil
} }
data, err := client.DoGetDataCall("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType)) key := &api.Key{}
hasData, errorsString, err := client.GetData("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType), key)
if err != nil { if err != nil {
log.Printf("grpc call DoGetDataCall to DataStorage failed: %s", err) log.Printf("grpc call GetData to DataStorage failed: %s", err)
getKeyResponse.Key = nil getKeyResponse.Key = nil
getKeyResponse.StatusList = utils.AddStatus(getKeyResponse.StatusList, getKeyResponse.StatusList = utils.AddStatus(getKeyResponse.StatusList,
"500", api.StatusType_ERROR, err.Error()) "500", api.StatusType_ERROR, err.Error())
return getKeyResponse, nil return getKeyResponse, nil
} }
if data.Errors != "" { if errorsString != "" {
getKeyResponse.Key = nil getKeyResponse.Key = nil
getKeyResponse.StatusList = utils.AddStatus(getKeyResponse.StatusList, getKeyResponse.StatusList = utils.AddStatus(getKeyResponse.StatusList,
"500", api.StatusType_ERROR, data.Errors) "500", api.StatusType_ERROR, errorsString)
} else { }
key := &api.Key{}
proto.Unmarshal(data.Data.Data, key) if !hasData {
getKeyResponse.Key = key log.Println("No such key " + in.Uuid)
getKeyResponse.Key = nil
getKeyResponse.StatusList = utils.AddStatus(getKeyResponse.StatusList,
"500", api.StatusType_ERROR, err.Error())
return getKeyResponse, nil
} }
getKeyResponse.Key = key
return getKeyResponse, nil return getKeyResponse, nil
} }
...@@ -142,29 +147,23 @@ func (s *KeyStorageServerImpl) SetKey(ctx context.Context, in *api.SetKeyRequest ...@@ -142,29 +147,23 @@ func (s *KeyStorageServerImpl) SetKey(ctx context.Context, in *api.SetKeyRequest
return setKeyResponse, nil return setKeyResponse, nil
} }
data, err := client.DoGetDataCall("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType)) key := &api.Key{}
_, _, err := client.GetData("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType), key)
if err != nil { if err != nil {
log.Printf("grpc call DoGetDataCall to DataStorage failed: %s", err) log.Printf("grpc call GetData to DataStorage failed: %s", err)
setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList, setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList,
"500", api.StatusType_ERROR, err.Error()) "500", api.StatusType_ERROR, err.Error())
return setKeyResponse, nil return setKeyResponse, nil
} }
if data.Errors != "" { if len(key.Content) > 0 {
setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList,
"400", api.StatusType_ERROR, data.Errors)
return setKeyResponse, nil
}
key := &api.Key{}
proto.Unmarshal(data.Data.Data, key)
if key != nil && key.Content != nil && len(key.Content) > 0 {
setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList, setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList,
"400", api.StatusType_ERROR, "Key is already set") "400", api.StatusType_ERROR, "Key is already set")
return setKeyResponse, nil return setKeyResponse, nil
} }
result, errors, err := client.DoPutDataCall("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType), in.Key, versions.EntitiesManagementAgentApiVersion) result, errors, err := client.PutData("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType), in.Key)
setKeyResponse.StatusList = keyutils.HandlePutDataErrors(setKeyResponse.StatusList, errors, err) setKeyResponse.StatusList = keyutils.HandlePutDataErrors(setKeyResponse.StatusList, errors, err)
if setKeyResponse.StatusList == nil || len(setKeyResponse.StatusList) == 0 { if setKeyResponse.StatusList == nil || len(setKeyResponse.StatusList) == 0 {
...@@ -175,10 +174,9 @@ func (s *KeyStorageServerImpl) SetKey(ctx context.Context, in *api.SetKeyRequest ...@@ -175,10 +174,9 @@ func (s *KeyStorageServerImpl) SetKey(ctx context.Context, in *api.SetKeyRequest
if in.KeyType == api.KeyType_PUBLIC { if in.KeyType == api.KeyType_PUBLIC {
keyContent := base64.StdEncoding.EncodeToString(in.Key.Content) keyContent := base64.StdEncoding.EncodeToString(in.Key.Content)
_, _, err = client.DoPutDataCallWithString(keyToKeyIdTable, keyContent, _, _, err = client.PutString(keyToKeyIdTable, keyContent, in.Uuid)
in.Uuid, versions.EntitiesManagementAgentApiVersion)
if err != nil { if err != nil {
log.Printf("can't DoPutDataCallWithString: %s", err) log.Printf("can't PutString: %s", err)
return nil, err return nil, err
} }
} }
...@@ -205,16 +203,16 @@ func (s *KeyStorageServerImpl) ReserveKeyUUID(ctx context.Context, in *api.Reser ...@@ -205,16 +203,16 @@ func (s *KeyStorageServerImpl) ReserveKeyUUID(ctx context.Context, in *api.Reser
Content: []byte{}, Content: []byte{},
} }
result, errors, err := client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_PRIVATE), emptyKey, versions.EntitiesManagementAgentApiVersion) result, errors, err := client.PutData("keys", uuid+"/"+api.KeyType.String(api.KeyType_PRIVATE), emptyKey)
reserveKeyUUIDResponse.StatusList = keyutils.HandlePutDataErrors(reserveKeyUUIDResponse.StatusList, errors, err) reserveKeyUUIDResponse.StatusList = keyutils.HandlePutDataErrors(reserveKeyUUIDResponse.StatusList, errors, err)
if reserveKeyUUIDResponse.StatusList == nil || len(reserveKeyUUIDResponse.StatusList) == 0 { if reserveKeyUUIDResponse.StatusList == nil || len(reserveKeyUUIDResponse.StatusList) == 0 {
result, errors, err = client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_PUBLIC), emptyKey, versions.EntitiesManagementAgentApiVersion) result, errors, err = client.PutData("keys", uuid+"/"+api.KeyType.String(api.KeyType_PUBLIC), emptyKey)
reserveKeyUUIDResponse.StatusList = keyutils.HandlePutDataErrors(reserveKeyUUIDResponse.StatusList, errors, err) reserveKeyUUIDResponse.StatusList = keyutils.HandlePutDataErrors(reserveKeyUUIDResponse.StatusList, errors, err)
} }
if reserveKeyUUIDResponse.StatusList == nil || len(reserveKeyUUIDResponse.StatusList) == 0 { if reserveKeyUUIDResponse.StatusList == nil || len(reserveKeyUUIDResponse.StatusList) == 0 {
result, errors, err = client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_CERTIFICATE), emptyKey, versions.EntitiesManagementAgentApiVersion) result, errors, err = client.PutData("keys", uuid+"/"+api.KeyType.String(api.KeyType_CERTIFICATE), emptyKey)
reserveKeyUUIDResponse.StatusList = keyutils.HandlePutDataErrors(reserveKeyUUIDResponse.StatusList, errors, err) reserveKeyUUIDResponse.StatusList = keyutils.HandlePutDataErrors(reserveKeyUUIDResponse.StatusList, errors, err)
} }
...@@ -238,10 +236,9 @@ func (s *KeyStorageServerImpl) GetKeyId(ctx context.Context, in *api.GetKeyIdByK ...@@ -238,10 +236,9 @@ func (s *KeyStorageServerImpl) GetKeyId(ctx context.Context, in *api.GetKeyIdByK
keyIdResponse := &api.GetKeyIdByKeyResponse{} keyIdResponse := &api.GetKeyIdByKeyResponse{}
response, err := dataStorageClient.DoGetDataCall(keyToKeyIdTable, in.PublicKey) keyId, errorsString, err := dataStorageClient.GetString(keyToKeyIdTable, in.PublicKey)
if err == nil && response.Data != nil && response.Data.Data != nil { if err == nil && errorsString == "" && keyId != "" {
keyID := string(response.Data.Data) keyIdResponse.KeyId = keyId
keyIdResponse.KeyId = keyID
return keyIdResponse, nil return keyIdResponse, nil
} else { } else {
if err != nil { if err != nil {
...@@ -260,17 +257,21 @@ func (s *KeyStorageServerImpl) GetKeyId(ctx context.Context, in *api.GetKeyIdByK ...@@ -260,17 +257,21 @@ func (s *KeyStorageServerImpl) GetKeyId(ctx context.Context, in *api.GetKeyIdByK
for _, checkID := range entity.AuthenticationKeys { for _, checkID := range entity.AuthenticationKeys {
key := &api.Key{} key := &api.Key{}
data, err := dataStorageClient.DoGetDataCall("keys", checkID+"/"+api.KeyType_PUBLIC.String()) hasData, errorsString, err := dataStorageClient.GetData("keys", checkID+"/"+api.KeyType_PUBLIC.String(), key)
if err != nil { if err != nil {
log.Printf("grpc call GetKeyId to DataStorage failed: %s", err) log.Printf("grpc call GetData to DataStorage failed: %s", err)
return nil, err return nil, err
} }
if data.Errors != "" { if errorsString != "" {
return nil, errors.New(data.Errors) log.Printf("Error: %s", errorsString)
} else { return nil, errors.New(errorsString)
proto.Unmarshal(data.Data.Data, key) }
if !hasData {
log.Println("No such checkID " + checkID)
return nil, errors.New("No such checkID " + checkID)
} }
keyFromStorage := base64.StdEncoding.EncodeToString(key.Content) keyFromStorage := base64.StdEncoding.EncodeToString(key.Content)
...@@ -279,10 +280,9 @@ func (s *KeyStorageServerImpl) GetKeyId(ctx context.Context, in *api.GetKeyIdByK ...@@ -279,10 +280,9 @@ func (s *KeyStorageServerImpl) GetKeyId(ctx context.Context, in *api.GetKeyIdByK
continue continue
} }
_, _, err = dataStorageClient.DoPutDataCallWithString(keyToKeyIdTable, in.PublicKey, _, _, err = dataStorageClient.PutString(keyToKeyIdTable, in.PublicKey, checkID)
checkID, versions.EntitiesManagementAgentApiVersion)
if err != nil { if err != nil {
log.Printf("can't DoPutDataCallWithString: %s", err) log.Printf("can't PutString: %s", err)
return nil, err return nil, err
} }
......
...@@ -22,7 +22,6 @@ import ( ...@@ -22,7 +22,6 @@ import (
"code.vereign.com/code/viam-apis/data-storage-agent/client" "code.vereign.com/code/viam-apis/data-storage-agent/client"
"code.vereign.com/code/viam-apis/key-storage-agent/api" "code.vereign.com/code/viam-apis/key-storage-agent/api"
"code.vereign.com/code/viam-apis/utils" "code.vereign.com/code/viam-apis/utils"
"code.vereign.com/code/viam-apis/versions"
"golang.org/x/net/context" "golang.org/x/net/context"
) )
...@@ -116,7 +115,7 @@ func updateKey(client *client.DataStorageClientImpl, uuid string, keyType api.Ke ...@@ -116,7 +115,7 @@ func updateKey(client *client.DataStorageClientImpl, uuid string, keyType api.Ke
update(key) update(key)
_, errors, err := client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(keyType), key, versions.EntitiesManagementAgentApiVersion) _, errors, err := client.PutData("keys", uuid+"/"+api.KeyType.String(keyType), key)
statusList = keyutils.HandlePutDataErrors(statusList, errors, err) statusList = keyutils.HandlePutDataErrors(statusList, errors, err)
if statusList != nil && len(statusList) > 0 { if statusList != nil && len(statusList) > 0 {
return statusList return statusList
......
...@@ -36,7 +36,6 @@ import ( ...@@ -36,7 +36,6 @@ import (
emclient "code.vereign.com/code/viam-apis/entities-management-agent/client" emclient "code.vereign.com/code/viam-apis/entities-management-agent/client"
"code.vereign.com/code/viam-apis/key-storage-agent/api" "code.vereign.com/code/viam-apis/key-storage-agent/api"
"code.vereign.com/code/viam-apis/utils" "code.vereign.com/code/viam-apis/utils"
"github.com/golang/protobuf/proto"
) )
func GenerateUnusedUUID(client *client.DataStorageClientImpl) (string, error) { func GenerateUnusedUUID(client *client.DataStorageClientImpl) (string, error) {
...@@ -45,9 +44,10 @@ func GenerateUnusedUUID(client *client.DataStorageClientImpl) (string, error) { ...@@ -45,9 +44,10 @@ func GenerateUnusedUUID(client *client.DataStorageClientImpl) (string, error) {
uuid, err := NewUUID() uuid, err := NewUUID()
// check that uuid is not used // check that uuid is not used
data, _ := client.DoGetDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_PRIVATE)) key := &api.Key{}
if data == nil || data.Errors != "" || err != nil { hasData, _, err := client.GetData("keys", uuid+"/"+api.KeyType.String(api.KeyType_PRIVATE), key)
if err != nil || !hasData {
return uuid, nil return uuid, nil
} }
if count >= 10 { if count >= 10 {
...@@ -136,14 +136,25 @@ func ReadPemBlockFromFile(fileName string) (*pem.Block, error) { ...@@ -136,14 +136,25 @@ func ReadPemBlockFromFile(fileName string) (*pem.Block, error) {
func GetKey(client *client.DataStorageClientImpl, uuid string, keyType api.KeyType) (*api.Key, []*api.Status) { func GetKey(client *client.DataStorageClientImpl, uuid string, keyType api.KeyType) (*api.Key, []*api.Status) {
statusList := []*api.Status{} statusList := []*api.Status{}
data, _ := client.DoGetDataCall("keys", uuid+"/"+api.KeyType.String(keyType)) key := &api.Key{}
if data.Errors != "" {
statusList = utils.AddStatus(statusList, "400", api.StatusType_ERROR, data.Errors) _, errorsString, err := client.GetData("keys", uuid+"/"+api.KeyType.String(keyType), key)
if err != nil {
statusList = utils.AddStatus(statusList, "400", api.StatusType_ERROR, errorsString)
return nil, statusList return nil, statusList
} }
key := &api.Key{} /*
proto.Unmarshal(data.Data.Data, key) if errorsString != "" {
statusList = utils.AddStatus(statusList, "400", api.StatusType_ERROR, errorsString)
return nil, statusList
}
if !hasData {
statusList = utils.AddStatus(statusList, "400", api.StatusType_ERROR, errorsString)
return nil, statusList
}
*/
return key, nil return key, nil
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment