From 3c4792e41e06a0b4503076d1d7cbb345731dd9c7 Mon Sep 17 00:00:00 2001
From: Olgun Cengiz <olgun.cengiz@vereign.com>
Date: Thu, 29 Nov 2018 12:26:22 +0300
Subject: [PATCH] added and updated log lines

---
 handler/generate_keypair.go | 17 +++++++++++++++++
 handler/handler.go          |  6 ++++--
 handler/utils.go            |  5 +++++
 server/server.go            |  7 ++++++-
 session/session.go          |  2 ++
 5 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/handler/generate_keypair.go b/handler/generate_keypair.go
index 1a7e20e..578008e 100644
--- a/handler/generate_keypair.go
+++ b/handler/generate_keypair.go
@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
 package handler
 
 import (
+	"log"
 	"crypto/aes"
 	"crypto/cipher"
 	"crypto/rand"
@@ -46,24 +47,28 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context,
 
 	uuid, err := generateUnusedUUID(client)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		generateKeyPairResponse.StatusList = utils.AddStatus(generateKeyPairResponse.StatusList,
 			"500", api.StatusType_ERROR, err.Error())
 	}
 
 	privateKeyBytes, publicKeyBytes, err := generateKeyPair(int(in.KeySize))
 	if err != nil {
+		log.Printf("Error: %v", err)
 		generateKeyPairResponse.StatusList = utils.AddStatus(generateKeyPairResponse.StatusList,
 			"500", api.StatusType_ERROR, err.Error())
 	}
 
 	aesKeyBytes, err := generateRandomSequence(256)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		generateKeyPairResponse.StatusList = utils.AddStatus(generateKeyPairResponse.StatusList,
 			"500", api.StatusType_ERROR, err.Error())
 	}
 
 	encryptedPrivateKeyBytes, privateKeyNonce, err := aesEncrypt(aesKeyBytes, privateKeyBytes)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		generateKeyPairResponse.StatusList = utils.AddStatus(generateKeyPairResponse.StatusList,
 			"500", api.StatusType_ERROR, err.Error())
 		return generateKeyPairResponse, nil
@@ -91,6 +96,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context,
 	if generateKeyPairResponse.StatusList == nil || len(generateKeyPairResponse.StatusList) == 0 {
 		encryptedAesKeyBytes, err := rsaEncryptWithServerKey(s.VereignCertFilePath, aesKeyBytes, []byte("aeskeys"))
 		if err != nil {
+			log.Printf("Error: %v", err)
 			generateKeyPairResponse.StatusList = utils.AddStatus(generateKeyPairResponse.StatusList,
 				"500", api.StatusType_ERROR, err.Error())
 			return generateKeyPairResponse, nil
@@ -105,6 +111,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context,
 	if generateKeyPairResponse.StatusList == nil || len(generateKeyPairResponse.StatusList) == 0 {
 		encryptedPrivateKeyNonceBytes, err := rsaEncryptWithServerKey(s.VereignCertFilePath, privateKeyNonce, []byte("nonce"))
 		if err != nil {
+			log.Printf("Error: %v", err)
 			generateKeyPairResponse.StatusList = utils.AddStatus(generateKeyPairResponse.StatusList,
 				"500", api.StatusType_ERROR, err.Error())
 			return generateKeyPairResponse, nil
@@ -128,11 +135,13 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context,
 func generateKeyPair(keySize int) ([]byte, []byte, error) {
 	privateKey, err := rsa.GenerateKey(rand.Reader, keySize)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, nil, err
 	}
 
 	err = privateKey.Validate()
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, nil, err
 	}
 
@@ -140,6 +149,7 @@ func generateKeyPair(keySize int) ([]byte, []byte, error) {
 
 	pkcs8PrivateKeyBytes, err := x509.MarshalPKCS8PrivateKey(privateKey)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, nil, err
 	}
 
@@ -152,6 +162,7 @@ func generateKeyPair(keySize int) ([]byte, []byte, error) {
 
 	pkixPublicKeyBytes, err := x509.MarshalPKIXPublicKey(publicKey)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, nil, err
 	}
 
@@ -168,12 +179,14 @@ func generateKeyPair(keySize int) ([]byte, []byte, error) {
 func rsaEncryptWithServerKey(certFilePath string, message []byte, label []byte) ([]byte, error) {
 	serverCertificate, err := readCertificateFromFile(certFilePath)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, err
 	}
 	serverPublicKey := serverCertificate.PublicKey.(*rsa.PublicKey)
 
 	encryptedMessageBytes, err := rsa.EncryptOAEP(sha256.New(), rand.Reader, serverPublicKey, message, label)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, err
 	}
 
@@ -183,16 +196,19 @@ func rsaEncryptWithServerKey(certFilePath string, message []byte, label []byte)
 func aesEncrypt(aesKey []byte, message []byte) ([]byte, []byte, error) {
 	block, err := aes.NewCipher(aesKey)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, nil, err
 	}
 
 	aesgcm, err := cipher.NewGCM(block)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, nil, err
 	}
 
 	nonce, err := generateRandomSequence(aesgcm.NonceSize() * 8)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, nil, err
 	}
 
@@ -206,6 +222,7 @@ func generateRandomSequence(keySize int) ([]byte, error) {
 
 	_, err := rand.Read(key)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, err
 	}
 
diff --git a/handler/handler.go b/handler/handler.go
index b53e59b..535a449 100644
--- a/handler/handler.go
+++ b/handler/handler.go
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
 package handler
 
 import (
-	"fmt"
+	"log"
 	"io/ioutil"
 	"strings"
 
@@ -76,6 +76,7 @@ func (s *KeyStorageServerImpl) GetKey(ctx context.Context, in *api.GetKeyRequest
 		data, err := ioutil.ReadFile(s.VereignCertFilePath)
 
 		if err != nil {
+			log.Printf("Error: %v", err)
 			getKeyResponse.StatusList = utils.AddStatus(getKeyResponse.StatusList,
 				"400", api.StatusType_ERROR, "Can not get root certificate")
 			return getKeyResponse, nil
@@ -168,6 +169,7 @@ func (s *KeyStorageServerImpl) ReserveKeyUUID(ctx context.Context, in *api.Reser
 
 	uuid, err := generateUnusedUUID(client)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		reserveKeyUUIDResponse.StatusList = utils.AddStatus(reserveKeyUUIDResponse.StatusList,
 			"500", api.StatusType_INFO, err.Error())
 	}
@@ -199,6 +201,6 @@ func (s *KeyStorageServerImpl) ReserveKeyUUID(ctx context.Context, in *api.Reser
 }
 
 func (s *KeyStorageServerImpl) GetVersionKSA(ctx context.Context, in *api.GetVersionKSAMessage) (*api.GetVersionKSAResponseMessage, error) {
-	fmt.Println("Version: " + version)
+	log.Println("Version: " + version)
 	return &api.GetVersionKSAResponseMessage{Version: version, Errors: ""}, nil
 }
\ No newline at end of file
diff --git a/handler/utils.go b/handler/utils.go
index c206e05..f138139 100644
--- a/handler/utils.go
+++ b/handler/utils.go
@@ -22,6 +22,7 @@ import (
 	"crypto/x509"
 	"errors"
 	"fmt"
+	"log"
 	"io"
 
 	"code.vereign.com/code/viam-apis/data-storage-agent/client"
@@ -65,6 +66,7 @@ func newUUID() (string, error) {
 
 func handlePutDataErrors(statusList []*api.Status, errors string, err error) []*api.Status {
 	if err != nil {
+		log.Printf("Error: %v", err)
 		statusList = utils.AddStatus(statusList, "500", api.StatusType_ERROR, err.Error())
 	} else if errors != "" {
 		statusList = utils.AddStatus(statusList, "400", api.StatusType_ERROR, errors)
@@ -76,11 +78,13 @@ func handlePutDataErrors(statusList []*api.Status, errors string, err error) []*
 func readCertificateFromFile(fileName string) (*x509.Certificate, error) {
 	certificatePemBlock, err := readPemBlockFromFile(fileName)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, err
 	}
 
 	certificate, err := x509.ParseCertificate(certificatePemBlock.Bytes)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, err
 	}
 
@@ -90,6 +94,7 @@ func readCertificateFromFile(fileName string) (*x509.Certificate, error) {
 func readPemBlockFromFile(fileName string) (*pem.Block, error) {
 	fileBytes, err := ioutil.ReadFile(fileName)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, err
 	}
 
diff --git a/server/server.go b/server/server.go
index 8ff5003..16a947d 100644
--- a/server/server.go
+++ b/server/server.go
@@ -95,12 +95,13 @@ func authenticateClient(ctx context.Context, s *handler.KeyStorageServerImpl, in
 // unaryInterceptor call authenticateClient with current context
 func unaryInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler1 grpc.UnaryHandler) (interface{}, error) {
 	s, ok := info.Server.(*handler.KeyStorageServerImpl)
-	fmt.Println("Invoked method: " + info.FullMethod)
+	log.Println("Invoked method: " + info.FullMethod)
 	if !ok {
 		return nil, fmt.Errorf("unable to cast server")
 	}
 	clientID, err := authenticateClient(ctx, s, info.FullMethod)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return nil, err
 	}
 
@@ -117,6 +118,7 @@ func StartGRPCServer(address, certFilePath, privateKeyFilePath, caCertFilePath,
 	// create a listener on TCP port
 	lis, err := net.Listen("tcp", address)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return fmt.Errorf("failed to listen: %v", err)
 	}
 
@@ -134,6 +136,7 @@ func StartGRPCServer(address, certFilePath, privateKeyFilePath, caCertFilePath,
 	// Create the TLS credentials
 	creds, err := credentials.NewServerTLSFromFile(certFilePath, privateKeyFilePath)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return fmt.Errorf("could not load TLS keys: %s", err)
 	}
 
@@ -168,6 +171,7 @@ func StartRESTServer(address, grpcAddress, certFile string) error {
 
 	creds, err := credentials.NewClientTLSFromFile(certFile, "")
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return fmt.Errorf("could not load TLS certificate: %s", err)
 	}
 
@@ -177,6 +181,7 @@ func StartRESTServer(address, grpcAddress, certFile string) error {
 	// Register RedisStorageServer
 	err = api.RegisterKeyStorageHandlerFromEndpoint(ctx, mux, grpcAddress, opts)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return fmt.Errorf("could not register service RedisStorageServer: %s", err)
 	}
 
diff --git a/session/session.go b/session/session.go
index 14793a8..326243f 100644
--- a/session/session.go
+++ b/session/session.go
@@ -18,12 +18,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
 package session
 
 import (
+	"log"
 	client "code.vereign.com/code/viam-apis/data-storage-agent/client"
 )
 
 func CheckSession(uuid string, session string, sessionClient *client.DataStorageClientImpl) bool {
 	hasSession, _, err := sessionClient.HasSession(uuid, session)
 	if err != nil {
+		log.Printf("Error: %v", err)
 		return false
 	}
 
-- 
GitLab