Пример #1
0
        /// <summary>
        /// ProcessRecord
        /// </summary>
        protected override void ProcessRecord()
        {
            Data.KeyVault KeyVault = KeyVaultHelper.GetItemThrow(null, VaultName, true);

            if (!(String.IsNullOrEmpty(KeyVault.Thumbprint)))
            {
                WriteError(
                    (new PSAdminException(PSAdminExceptionType.ParameterDefined, String.Format("in KeyVault '{0}' with the name of '{1}'", VaultName, Thumbprint))).GetErrorRecord()
                    );
                return;
            }

            Data.KeyVaultCertificate[] SearchCertificate = KeyVaultCertificateHelper.GetItemsThrow(null, KeyVault.VaultName, null, Thumbprint, null, false, true);

            X509Certificate2 x509 = (X509Certificate2)SearchCertificate[0].Certificate;

            if ((x509.HasPrivateKey == false) || (x509.PrivateKey == null))
            {
                WriteError(
                    (new PSAdminException(PSAdminExceptionType.CertificatePrivateKey, Thumbprint)).GetErrorRecord()
                    );
                return;
            }

            Hashtable filter = new Hashtable {
                { "Id", KeyVault.Id },
                { "VaultName", KeyVault.VaultName },
            };
            Hashtable row = new Hashtable {
                { "Thumbprint", x509.Thumbprint },
                { "VaultKey", ((RSACryptoServiceProvider)x509.PublicKey.Key).Encrypt(KeyVault.VaultKey, true) }
            };

            bool issuccessful = KeyVaultHelper.SetItemsThrow(row, filter, true);
        }
Пример #2
0
        /// <summary>
        /// Process Record
        /// </summary>
        protected override void ProcessRecord()
        {
            Data.KeyVault KeyVault = KeyVaultHelper.GetItemThrow(null, VaultName, true);

            Data.KeyVaultCertificate[] SearchCertificate = KeyVaultCertificateHelper.GetItemsThrow(null, VaultName, Name, null, null, false, true);

            // Note: This will only ever return one item
            foreach (Data.KeyVaultCertificate Certificate in SearchCertificate)
            {
                X509Certificate2 x509 = (X509Certificate2)Certificate.Certificate;
                byte[]           CertificateByteArray = x509.Export(X509ContentType.Pkcs12, Password);
                x509.Dispose();
                switch (ParameterSetName)
                {
                case ImportFromFileParameterSetName:
                    File.WriteAllBytes(FileName, CertificateByteArray);
                    break;

                case ImportFromStringParameterSetName:
                    WriteObject(
                        Convert.ToBase64String(CertificateByteArray)
                        );
                    break;

                default:
                    WriteError(
                        (new PSAdminException(PSAdminExceptionType.ParameterSetNotFound, Name, "Name")).GetErrorRecord()
                        );
                    return;
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Process Record
        /// </summary>
        protected override void ProcessRecord()
        {
            KeyVaultHelper.GetItemsThrow(null, VaultName, !Match);

            Data.KeyVaultCertificate[] certificates = KeyVaultCertificateHelper.GetItemsThrow(Id, VaultName, Name, Thumbprint, null, false, !Match);

            // Unroll the object
            foreach (Data.KeyVaultCertificate certificate in certificates)
            {
                if (!ShouldProcess(certificate.Name, "Remove"))
                {
                    continue;
                }
                KeyVaultCertificateHelper.RemoveItemThrow(certificate.Id, certificate.VaultName, certificate.Name, !Match);
            }
        }