diff --git a/handler/generate_certificate.go b/handler/generate_certificate.go
index 54364e9f767976ba703820da6e2125662cfaf566..c14ac82013ef126eb4ecdcf3bbcf1bf07f09a8f9 100644
--- a/handler/generate_certificate.go
+++ b/handler/generate_certificate.go
@@ -75,7 +75,9 @@ func (s *KeyStorageServerImpl) GenerateCertificate(ctx context.Context, in *api.
 func generateCertificate(publicKeyBytes []byte, caCertFilePath string, caPrivateKeyFilePath string,
 	certificateData *api.GenerateCertificateRequest_CertificateData) ([]byte, error) {
 
-	publicKey, err := x509.ParsePKIXPublicKey(publicKeyBytes)
+	publicKeyPemBlock, _ := pem.Decode(publicKeyBytes)
+
+	publicKey, err := x509.ParsePKIXPublicKey(publicKeyPemBlock.Bytes)
 	if err != nil {
 		return nil, err
 	}
diff --git a/handler/generate_keypair.go b/handler/generate_keypair.go
index 65a26562768a1422f3c4c70af7d6617db09d5993..febe5ab1d1b1f124b7630d9b7aff16a7d0c170f9 100644
--- a/handler/generate_keypair.go
+++ b/handler/generate_keypair.go
@@ -24,6 +24,7 @@ import (
 	"crypto/rsa"
 	"crypto/sha256"
 	"crypto/x509"
+	"encoding/pem"
 
 	"code.vereign.com/code/viam-apis/data-storage-agent/client"
 	"code.vereign.com/code/viam-apis/key-storage-agent/api"
@@ -129,15 +130,30 @@ func generateKeyPair(keySize int) ([]byte, []byte, error) {
 
 	publicKey := &privateKey.PublicKey
 
-	privateKeyBytes, err := x509.MarshalPKCS8PrivateKey(privateKey)
+	pkcs8PrivateKeyBytes, err := x509.MarshalPKCS8PrivateKey(privateKey)
 	if err != nil {
 		return nil, nil, err
 	}
-	publicKeyBytes, err := x509.MarshalPKIXPublicKey(publicKey)
+
+	privateKeyPemBlock := &pem.Block{
+		Type:  "RSA PRIVATE KEY",
+		Bytes: pkcs8PrivateKeyBytes,
+	}
+
+	privateKeyBytes := pem.EncodeToMemory(privateKeyPemBlock)
+
+	pkixPublicKeyBytes, err := x509.MarshalPKIXPublicKey(publicKey)
 	if err != nil {
 		return nil, nil, err
 	}
 
+	publicKeyPemBlock := &pem.Block{
+		Type:  "RSA PRIVATE KEY",
+		Bytes: pkixPublicKeyBytes,
+	}
+
+	publicKeyBytes := pem.EncodeToMemory(publicKeyPemBlock)
+
 	return privateKeyBytes, publicKeyBytes, nil
 }