@@ -28,6 +28,11 @@ func main() {
28
28
log .Printf ("Failed to load config: %v" , err )
29
29
}
30
30
31
+ pk , err := parsePrivateKey (cfg .AzurePrivateKey )
32
+ if err != nil {
33
+ log .Fatalf ("Failed to parse private key: %v" , err )
34
+ }
35
+
31
36
// Create a confidential identity credentials provider with certificate authentication
32
37
cp , err := entraid .NewConfidentialCredentialsProvider (entraid.ConfidentialCredentialsProviderOptions {
33
38
CredentialsProviderOptions : entraid.CredentialsProviderOptions {
@@ -46,7 +51,7 @@ func main() {
46
51
},
47
52
Scopes : cfg .GetRedisScopes (),
48
53
ClientCert : parseCertificates (cfg .AzureCert ),
49
- ClientPrivateKey : parsePrivateKey ( cfg . AzurePrivateKey ) ,
54
+ ClientPrivateKey : pk ,
50
55
},
51
56
})
52
57
if err != nil {
@@ -149,23 +154,22 @@ func decodeBase64Pem(pemData string) string {
149
154
return string (decoded )
150
155
}
151
156
152
- func parsePrivateKey (base64data string ) * rsa.PrivateKey {
157
+ func parsePrivateKey (base64data string ) ( * rsa.PrivateKey , error ) {
153
158
var privateKey * rsa.PrivateKey
154
- var err error
155
159
decoded := decodeBase64Pem (base64data )
156
160
pk , err := x509 .ParsePKCS8PrivateKey ([]byte (decoded ))
157
161
if err != nil {
158
- log . Printf ( "Failed to parse pkcs8 key: %v " , err )
162
+ return nil , fmt . Errorf ( "failed to parse pkcs8 key: %w " , err )
159
163
}
160
164
privateKey , _ = pk .(* rsa.PrivateKey )
161
165
if privateKey == nil {
162
166
pk , err = x509 .ParsePKCS1PrivateKey ([]byte (decoded ))
163
167
if err != nil {
164
- log . Printf ( "Failed to parse pkcs1 key: %v " , err )
168
+ return nil , fmt . Errorf ( "failed to parse pkcs1 key: %w " , err )
165
169
}
166
170
privateKey , _ = pk .(* rsa.PrivateKey )
167
171
}
168
- return privateKey
172
+ return privateKey , nil
169
173
}
170
174
171
175
func parseCertificates (pemData string ) []* x509.Certificate {
0 commit comments