Browse Source

feat: support pkcs12 with chain in pushsecret to Azure KeyVault (#3747)

Signed-off-by: Ketil Gjerde <477141+mysteq@users.noreply.github.com>
Ketil 1 year ago
parent
commit
725c0549d1

+ 8 - 2
pkg/provider/azure/keyvault/keyvault.go

@@ -350,13 +350,19 @@ func getCertificateFromValue(value []byte) (*x509.Certificate, error) {
 		return localCert, nil
 	}
 
-	// 2nd: try DER
+	// 2nd: try decode pkcs12 with chain
+	_, localCert, _, err = gopkcs12.DecodeChain(value, "")
+	if err == nil {
+		return localCert, nil
+	}
+
+	// 3rd: try DER
 	localCert, err = x509.ParseCertificate(value)
 	if err == nil {
 		return localCert, nil
 	}
 
-	// 3nd: parse PEM blocks
+	// 4th: parse PEM blocks
 	for {
 		block, rest := pem.Decode(value)
 		value = rest

File diff suppressed because it is too large
+ 30 - 0
pkg/provider/azure/keyvault/keyvault_test.go