private void CopyToClipboard(Vault vault) { PropertyObject po = null; switch (Collection) { case VaultUriCollection.Keys: return; case VaultUriCollection.Certificates: var cb = vault.GetCertificateAsync(ItemName, Version, CancellationToken.None).GetAwaiter().GetResult(); var cert = vault.GetCertificateWithExportableKeysAsync(ItemName, Version, CancellationToken.None).GetAwaiter().GetResult(); po = new PropertyObjectCertificate(cb, cb.Policy, cert, null); break; case VaultUriCollection.Secrets: var s = vault.GetSecretAsync(ItemName, Version, CancellationToken.None).GetAwaiter().GetResult(); po = new PropertyObjectSecret(s, null); break; default: throw new ArgumentOutOfRangeException(nameof(Collection), $"Invalid endpoint {Collection}"); } po.CopyToClipboard(true); }
public override async Task <ListViewItemBase> UpdateAsync(object originalObject, PropertyObject newObject, CancellationToken cancellationToken) { CertificateBundle cb = (CertificateBundle)originalObject; PropertyObjectCertificate certNew = (PropertyObjectCertificate)newObject; await Session.CurrentVault.UpdateCertificatePolicyAsync(certNew.Name, certNew.CertificatePolicy, cancellationToken); cb = await Session.CurrentVault.UpdateCertificateAsync(certNew.Name, null, null, certNew.ToCertificateAttributes(), certNew.ToTagsDictionary(), cancellationToken); return(new ListViewItemCertificate(Session, cb)); }
public static async Task <ListViewItemCertificate> NewAsync(ISession session, PropertyObject newObject, CancellationToken cancellationToken) { PropertyObjectCertificate certNew = (PropertyObjectCertificate)newObject; var certCollection = new X509Certificate2Collection(); certCollection.Add(certNew.Certificate); CertificateBundle cb = await session.CurrentVault.ImportCertificateAsync(certNew.Name, certCollection, certNew.CertificatePolicy, certNew.CertificateBundle.Attributes, certNew.ToTagsDictionary(), cancellationToken); return(new ListViewItemCertificate(session, cb)); }