/// <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); }
/// <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; } } }
/// <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); } }