Skip to content
Snippets Groups Projects

Devops22 code cleanup

Merged Olgun Cengiz requested to merge devops22-code-cleanup into master
7 files
+ 43
5
Compare changes
  • Side-by-side
  • Inline
Files
7
@@ -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
}
Loading