in pkg/provider/provider.go [498:521]
func (p *provider) getCertificate(ctx context.Context, kvClient KeyVault, kvObject types.KeyVaultObject) ([]keyvaultObject, error) {
// for object type "cert" the certificate is written to the file in PEM format
certbundle, err := kvClient.GetCertificate(ctx, kvObject.ObjectName, kvObject.ObjectVersion)
if err != nil {
return nil, wrapObjectTypeError(err, kvObject.ObjectType, kvObject.ObjectName, kvObject.ObjectVersion)
}
if certbundle.CER == nil {
return nil, errors.Errorf("certificate value is nil")
}
if certbundle.ID == nil {
return nil, errors.Errorf("certificate id is nil")
}
id := *certbundle.ID
version := id.Version()
certBlock := &pem.Block{
Type: types.CertificateType,
Bytes: certbundle.CER,
}
var pemData []byte
pemData = append(pemData, pem.EncodeToMemory(certBlock)...)
return []keyvaultObject{{content: string(pemData), version: version}}, nil
}