From 414015dc075a874d5035de6e035a79c6433ea486 Mon Sep 17 00:00:00 2001 From: Damyan Mitev <damyan.mitev@vereign.com> Date: Tue, 9 Oct 2018 18:54:16 +0300 Subject: [PATCH] Move logic of generate certificate to signing-service --- .gitignore | 2 +- handler/generate_certificate.go | 20 ++------------------ handler/generate_keypair.go | 8 ++++++++ handler/utils.go | 13 +++++++++++++ 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index c47510b..514bfbb 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ bin/ vendor/ Gopkg.lock .idea/ - +.project diff --git a/handler/generate_certificate.go b/handler/generate_certificate.go index d5ec9a9..7876990 100644 --- a/handler/generate_certificate.go +++ b/handler/generate_certificate.go @@ -17,24 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. package handler -import ( - "crypto/rand" - "crypto/rsa" - "crypto/x509" - "crypto/x509/pkix" - "encoding/pem" - "io/ioutil" - "math/big" - "time" - - "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/utils" - "code.vereign.com/code/viam-apis/versions" - "golang.org/x/net/context" - "encoding/asn1" -) - +/* TODO remove this file func (s *KeyStorageServerImpl) GenerateCertificate(ctx context.Context, in *api.GenerateCertificateRequest) (*api.GenerateCertificateResponse, error) { auth := s.CreateAuthentication(ctx) @@ -188,3 +171,4 @@ func readPemBlockFromFile(fileName string) (*pem.Block, error) { return certificatePemBlock, nil } +*/ diff --git a/handler/generate_keypair.go b/handler/generate_keypair.go index aadb6c9..19f6582 100644 --- a/handler/generate_keypair.go +++ b/handler/generate_keypair.go @@ -80,6 +80,14 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context, generateKeyPairResponse.StatusList = handlePutDataErrors(generateKeyPairResponse.StatusList, errors, err) } + //duplicate logic of ReserveKeyUUID + if generateKeyPairResponse.StatusList == nil || len(generateKeyPairResponse.StatusList) == 0 { + emptyKey := &api.Key{Content: []byte{}} + result, errors, err = client.DoPutDataCall("keys", uuid+"/"+api.KeyType.String(api.KeyType_CERTIFICATE), + emptyKey, versions.EntitiesManagementAgentApiVersion) + generateKeyPairResponse.StatusList = handlePutDataErrors(generateKeyPairResponse.StatusList, errors, err) + } + if generateKeyPairResponse.StatusList == nil || len(generateKeyPairResponse.StatusList) == 0 { encryptedAesKeyBytes, err := rsaEncryptWithServerKey(s.VereignCertFilePath, aesKeyBytes, []byte("aeskeys")) if err != nil { diff --git a/handler/utils.go b/handler/utils.go index a8e2ba9..c206e05 100644 --- a/handler/utils.go +++ b/handler/utils.go @@ -28,6 +28,8 @@ import ( "code.vereign.com/code/viam-apis/key-storage-agent/api" "code.vereign.com/code/viam-apis/utils" "github.com/golang/protobuf/proto" + "encoding/pem" + "io/ioutil" ) func generateUnusedUUID(client *client.DataStorageClientImpl) (string, error) { @@ -85,6 +87,17 @@ func readCertificateFromFile(fileName string) (*x509.Certificate, error) { return certificate, nil } +func readPemBlockFromFile(fileName string) (*pem.Block, error) { + fileBytes, err := ioutil.ReadFile(fileName) + if err != nil { + return nil, err + } + + certificatePemBlock, _ := pem.Decode(fileBytes) + + return certificatePemBlock, nil +} + func getKey(client *client.DataStorageClientImpl, uuid string, keyType api.KeyType) (*api.Key, []*api.Status) { statusList := []*api.Status{} -- GitLab