diff --git a/pkg/services/secrets/manager/manager.go b/pkg/services/secrets/manager/manager.go index c854a03fe80..30177223b56 100644 --- a/pkg/services/secrets/manager/manager.go +++ b/pkg/services/secrets/manager/manager.go @@ -441,7 +441,7 @@ func (s *SecretsService) dataKeyById(ctx context.Context, id string) ([]byte, er return nil, fmt.Errorf("could not find encryption provider '%s'", dataKey.Provider) } - // 2.2. Encrypt the data key. + // 2.2. Decrypt the data key. decrypted, err := provider.Decrypt(ctx, dataKey.EncryptedData) if err != nil { return nil, err diff --git a/pkg/services/signingkeys/signingkeysimpl/service.go b/pkg/services/signingkeys/signingkeysimpl/service.go index af574d99426..edd4bd11a37 100644 --- a/pkg/services/signingkeys/signingkeysimpl/service.go +++ b/pkg/services/signingkeys/signingkeysimpl/service.go @@ -1,6 +1,7 @@ package signingkeysimpl import ( + "bytes" "context" "crypto" "crypto/ecdsa" @@ -226,8 +227,8 @@ func (s *Service) encodePrivateKey(ctx context.Context, privateKey crypto.Signer return nil, err } - encoded := make([]byte, base64.StdEncoding.EncodedLen(len(encrypted))) - base64.StdEncoding.Encode(encoded, encrypted) + encoded := make([]byte, base64.RawStdEncoding.EncodedLen(len(encrypted))) + base64.RawStdEncoding.Encode(encoded, encrypted) return encoded, nil } @@ -237,8 +238,12 @@ func (s *Service) decodePrivateKey(ctx context.Context, privateKey []byte) (cryp return nil, errors.New("private key is empty") } - payload := make([]byte, base64.StdEncoding.DecodedLen(len(privateKey))) - _, err := base64.StdEncoding.Decode(payload, privateKey) + // Backwards compatibility with old base64 encoding + // Can be removed in the future + privateKey = bytes.TrimRight(privateKey, "=") + + payload := make([]byte, base64.RawStdEncoding.DecodedLen(len(privateKey))) + _, err := base64.RawStdEncoding.Decode(payload, privateKey) if err != nil { return nil, err }