public override void ExecuteCmdlet()
        {
            if (InputObject != null)
            {
                VaultName = InputObject.VaultName;
                Name      = InputObject.Name;
            }

            if (ShouldProcess(Name, Properties.Resources.SetCertificateAttributes))
            {
                var certificateBundle = DataServiceClient.UpdateCertificate(
                    VaultName,
                    Name,
                    Version ?? string.Empty,
                    new CertificateAttributes
                {
                    Enabled = Enable,
                },
                    Tag == null ? null : Tag.ConvertToDictionary());

                if (PassThru)
                {
                    var certificate = PSKeyVaultCertificate.FromCertificateBundle(certificateBundle);
                    this.WriteObject(certificate);
                }
            }
        }
        public override void ExecuteCmdlet()
        {
            if (ShouldProcess(Name, Properties.Resources.ImportCertificate))
            {
                List <CertificateBundle> certBundleList = new List <CertificateBundle>();
                CertificateBundle        certBundle     = null;

                switch (ParameterSetName)
                {
                case ImportCertificateFromFileParameterSet:

                    if (Password != null)
                    {
                        X509Certificate2Collection userProvidedCertColl = InitializeCertificateCollection();
                        X509Certificate2Collection certColl             = new X509Certificate2Collection();

                        byte[] base64Bytes;

                        if (Password == null)
                        {
                            base64Bytes = userProvidedCertColl.Export(X509ContentType.Pfx);
                        }
                        else
                        {
                            base64Bytes = userProvidedCertColl.Export(X509ContentType.Pfx, Password.ConvertToString());
                        }

                        string base64CertCollection = Convert.ToBase64String(base64Bytes);
                        certBundle = this.DataServiceClient.ImportCertificate(VaultName, Name, base64CertCollection, Password, Tag == null ? null : Tag.ConvertToDictionary());

                        break;
                    }

                    certBundle = this.DataServiceClient.MergeCertificate(
                        VaultName,
                        Name,
                        LoadCertificateFromFile(),
                        Tag == null ? null : Tag.ConvertToDictionary());

                    break;

                case ImportWithPrivateKeyFromCollectionParameterSet:
                    certBundle = this.DataServiceClient.ImportCertificate(VaultName, Name, CertificateCollection, Tag == null ? null : Tag.ConvertToDictionary());

                    break;

                case ImportWithPrivateKeyFromStringParameterSet:
                    certBundle = this.DataServiceClient.ImportCertificate(VaultName, Name, CertificateString, Password, Tag == null ? null : Tag.ConvertToDictionary());

                    break;
                }

                var certificate = PSKeyVaultCertificate.FromCertificateBundle(certBundle);
                this.WriteObject(certificate);
            }
        }
        public override void ExecuteCmdlet()
        {
            if (ShouldProcess(Name, Properties.Resources.ImportCertificate))
            {
                List <CertificateBundle> certBundleList = new List <CertificateBundle>();
                PSKeyVaultCertificate    certBundle     = null;

                switch (ParameterSetName)
                {
                case ImportCertificateFromFileParameterSet:

                    bool doImport = false;
                    X509Certificate2Collection userProvidedCertColl = InitializeCertificateCollection();

                    // look for at least one certificate which contains a private key
                    foreach (var cert in userProvidedCertColl)
                    {
                        doImport |= cert.HasPrivateKey;
                        if (doImport)
                        {
                            break;
                        }
                    }

                    if (doImport)
                    {
                        byte[] base64Bytes          = userProvidedCertColl.Export(X509ContentType.Pfx, Password?.ConvertToString());
                        string base64CertCollection = Convert.ToBase64String(base64Bytes);
                        certBundle = this.DataServiceClient.ImportCertificate(VaultName, Name, base64CertCollection, Password, Tag == null ? null : Tag.ConvertToDictionary());
                    }
                    else
                    {
                        certBundle = this.DataServiceClient.MergeCertificate(
                            VaultName,
                            Name,
                            userProvidedCertColl,
                            Tag == null ? null : Tag.ConvertToDictionary());
                    }
                    break;

                case ImportWithPrivateKeyFromCollectionParameterSet:
                    certBundle = this.DataServiceClient.ImportCertificate(VaultName, Name, CertificateCollection, Tag == null ? null : Tag.ConvertToDictionary());

                    break;

                case ImportWithPrivateKeyFromStringParameterSet:
                    certBundle = this.DataServiceClient.ImportCertificate(VaultName, Name, CertificateString, Password, Tag == null ? null : Tag.ConvertToDictionary());

                    break;
                }

                this.WriteObject(certBundle);
            }
        }
        public override void ExecuteCmdlet()
        {
            if (InputObject != null)
            {
                VaultName = InputObject.VaultName;
                Name      = InputObject.Name;
            }

            if (ShouldProcess(Name, Properties.Resources.RecoverCertificate))
            {
                PSKeyVaultCertificate certificate = DataServiceClient.RecoverCertificate(VaultName, Name);
                WriteObject(certificate);
            }
        }
Exemplo n.º 5
0
        public override void ExecuteCmdlet()
        {
            CertificateBundle certBundle;

            if (InputObject != null)
            {
                VaultName = InputObject.VaultName.ToString();
            }

            if (!string.IsNullOrEmpty(Version))
            {
                certBundle = this.DataServiceClient.GetCertificate(VaultName, Name, Version);
                var certificate = PSKeyVaultCertificate.FromCertificateBundle(certBundle);
                this.WriteObject(certificate);
            }
            else if (IncludeVersions)
            {
                certBundle = this.DataServiceClient.GetCertificate(VaultName, Name, string.Empty);
                if (certBundle != null)
                {
                    WriteObject(new PSKeyVaultCertificateIdentityItem(certBundle));
                    GetAndWriteCertificatesVersions(VaultName, Name, certBundle.CertificateIdentifier.Version);
                }
            }
            else if (InRemovedState)
            {
                if (Name == null)
                {
                    GetAndWriteDeletedCertificates(VaultName);
                }
                else
                {
                    PSDeletedKeyVaultCertificate deletedCert = PSDeletedKeyVaultCertificate.FromDeletedCertificateBundle(DataServiceClient.GetDeletedCertificate(VaultName, Name));
                    WriteObject(deletedCert);
                }
            }
            else if (!string.IsNullOrEmpty(Name))
            {
                certBundle = this.DataServiceClient.GetCertificate(VaultName, Name, string.Empty);
                var certificate = PSKeyVaultCertificate.FromCertificateBundle(certBundle);
                this.WriteObject(certificate);
            }
            else
            {
                GetAndWriteCertificates(VaultName);
            }
        }