in pkg/cloud/azureclient.go [122:142]
func newAzureClientWithCertificate(env azure.Environment, subscriptionID, clientID, tenantID string, certificate *x509.Certificate, privateKey *rsa.PrivateKey, client *http.Client) (*AzureClient, error) {
if certificate == nil {
return nil, errors.New("certificate should not be nil")
}
if privateKey == nil {
return nil, errors.New("privateKey should not be nil")
}
cred, err := azidentity.NewClientCertificateCredential(tenantID, clientID, []*x509.Certificate{certificate}, privateKey,
&azidentity.ClientCertificateCredentialOptions{
ClientOptions: azcore.ClientOptions{
Transport: client,
},
})
if err != nil {
return nil, errors.Wrap(err, "failed to create credential")
}
return getClient(env, subscriptionID, cred, client)
}