protected override void OnDelete(SyncStatus status) { if (!MMCDlgHelper.ShowConfirm(CommonConstants.GetSelectedDeleteMsg("secret keys", this.SelectedNodes.Count))) { return; } base.OnDelete(status); var entriesNode = this.ScopeNode as VecsStoreEntriesNode; var dto = entriesNode.ServerDTO; var storeName = entriesNode.StoreName; var storePass = ""; MMCActionHelper.CheckedExec(delegate() { using (var session = new VecsStoreSession(dto.VecsClient, storeName, storePass)) { foreach (ResultNode node in this.SelectedNodes) { var certDTO = node.Tag as Vecs.CertDTO; session.DeleteCertificate(certDTO.Alias); } } }); Refresh(); }
public override void Refresh() { ResultNodes.Clear(); var entriesNode = this.ScopeNode as VecsStoreEntriesNode; var dto = entriesNode.ServerDTO; var storeName = entriesNode.StoreName; var storePass = ""; MMCActionHelper.CheckedExec(delegate() { using (var session = new VecsStoreSession(dto.VecsClient, storeName, storePass)) { var lst = session.GetSecretKeys(); if (lst == null) { return; } foreach (var certDTO in lst) { var resultNode = new ResultNode { DisplayName = certDTO.Alias }; resultNode.ImageIndex = (int)VMCertStoreImageIndex.SecretKeys; resultNode.Tag = certDTO; this.ResultNodes.Add(resultNode); } } }); this.Sort(0); this.DescriptionBarText = this.ResultNodes.Count.ToString(); }
public void AddCertificate(object sender, EventArgs args) { AddCertificateWindowController cwc = new AddCertificateWindowController(); NSApplication.SharedApplication.BeginSheet(cwc.Window, VMCertStoreSnapInEnvironment.Instance.mainWindow, () => { }); nint result = NSApplication.SharedApplication.RunModalForWindow(cwc.Window); try { if (result == (nint)VMIdentityConstants.DIALOGOK) { var dto = cwc.CertificateDTO; string storeName = (string)Tag; string storePass = ""; using (var session = new VecsStoreSession(ServerNode.ServerDTO.VecsClient, storeName, storePass)) { session.AddCertificateEntry(dto.Alias, "", "", dto.Certificate); } UIErrorHelper.ShowAlert("Successfully added Certificate", "Info"); ServerNode.UpdateStoreInfo(storeName); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadTableView", this); } } catch (Exception e) { UIErrorHelper.ShowAlert(e.Message, "Alert"); } finally { VMCertStoreSnapInEnvironment.Instance.mainWindow.EndSheet(cwc.Window); cwc.Dispose(); } }
public void AddSecretKey(object sender, EventArgs args) { UIErrorHelper.CheckedExec(delegate() { AddSecretKeyWindowController cwc = new AddSecretKeyWindowController(); NSApplication.SharedApplication.BeginSheet(cwc.Window, VMCertStoreSnapInEnvironment.Instance.mainWindow, () => { }); nint result = NSApplication.SharedApplication.RunModalForWindow(cwc.Window); try { if (result == (nint)VMIdentityConstants.DIALOGOK) { var dto = cwc.SecretKeyDTO; string storeName = (string)Tag; string storePass = ""; using (var session = new VecsStoreSession(ServerNode.ServerDTO.VecsClient, storeName, storePass)) { session.AddSecretKeyEntry(dto.Alias, dto.SecretKey, dto.Password, null); } ServerNode.UpdateStoreInfo(storeName); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadTableView", this); } } finally { VMCertStoreSnapInEnvironment.Instance.mainWindow.EndSheet(cwc.Window); cwc.Dispose(); } }); }
public void UpdateStoreInfo(string storename) { UIErrorHelper.CheckedExec(delegate() { if (storename != null) { string storePass = ""; using (var session = new VecsStoreSession(ServerDTO.VecsClient, storename, storePass)) { // update store info if (StoresInfo.ContainsKey(storename)) { StoresInfo [storename] = new CertBagItem() { PrivateKeys = session.GetPrivateKeys().Concat(session.GetEncryptedPrivateKeys()).ToList(), SecretKeys = session.GetSecretKeys().ToList(), Certs = session.GetCertificates().ToList() }; CalculateKeyInfo(); } else { StoresInfo.Add(storename, new CertBagItem() { PrivateKeys = session.GetPrivateKeys().Concat(session.GetEncryptedPrivateKeys()).ToList(), SecretKeys = session.GetSecretKeys().ToList(), Certs = session.GetCertificates().ToList() }); NoStores++; } } } }); }
public override NSMenu MenuForEvent(NSEvent theEvent) { CGPoint pt = this.ConvertPointFromView(theEvent.LocationInWindow, null); _selectedRow = this.GetRow(pt); NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource; NSMenu menu = new NSMenu(); if (_selectedRow >= (nint)0) { if (ds is NodesListView) { string data = (ds as NodesListView).Entries [(int)_selectedRow].DisplayName; switch (data) { case "Private Entities": NSMenuItem addPrivateEntity = new NSMenuItem("Add Private Entity", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsPrivateKeysNode).AddPrivateKeyHandler); menu.AddItem(addPrivateEntity); break; case "Secret Keys": NSMenuItem createCertificate = new NSMenuItem("Add Secret Key", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsSecretKeysNode).AddSecretKey); menu.AddItem(createCertificate); break; case "Trusted Certs": NSMenuItem createSigningRequest = new NSMenuItem("Create Certificate", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsTrustedCertsNode).AddCertificate); menu.AddItem(createSigningRequest); break; default: break; } } else if (ds is CertificateDetailsListView) { CertificateDetailsListView lw = ds as CertificateDetailsListView; CertDTO cert = lw.Entries [(int)_selectedRow]; NSMenuItem showCert = new NSMenuItem("Show Certificate", (object sender, EventArgs e) => CertificateService.DisplayX509Certificate2(this, cert.Cert)); menu.AddItem(showCert); NSMenuItem deleteEntry = new NSMenuItem("Delete", (object sender, EventArgs e) => { UIErrorHelper.CheckedExec(delegate() { if (UIErrorHelper.ConfirmDeleteOperation("Are you sure?") == true) { using (var session = new VecsStoreSession(lw.ServerDto.VecsClient, lw.Store, "")) { session.DeleteCertificate(cert.Alias); } lw.Entries.Remove(cert); UIErrorHelper.ShowAlert("", "Successfully deleted the entry."); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadServerData", this); } }); }); menu.AddItem(deleteEntry); } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); } return(base.MenuForEvent(theEvent)); }
public override void Refresh() { ResultNodes.Clear(); var entriesNode = this.ScopeNode as VecsStoreEntriesNode; var dto = entriesNode.ServerDTO; var storeName = entriesNode.StoreName; var storePass = ""; MMCActionHelper.CheckedExec(delegate() { using (var session = new VecsStoreSession(dto.VecsClient, storeName, storePass)) { var lst = session.GetCertificates(); if (lst == null) { return; } foreach (var certDTO in lst) { var resultNode = new ResultNode { DisplayName = certDTO.Alias }; resultNode.ImageIndex = (int)VMCertStoreImageIndex.TrustedCert; if (certDTO.Cert != null) { resultNode.SubItemDisplayNames.Add(certDTO.Cert.Subject); resultNode.SubItemDisplayNames.Add(certDTO.Cert.Issuer); resultNode.SubItemDisplayNames.Add(certDTO.Cert.NotBefore.ToShortDateString()); resultNode.SubItemDisplayNames.Add(certDTO.Cert.NotAfter.ToShortDateString()); resultNode.SubItemDisplayNames.Add(certDTO.Cert.GetKeyUsage()); resultNode.Tag = certDTO; } this.ResultNodes.Add(resultNode); } } }); this.Sort(0); this.DescriptionBarText = this.ResultNodes.Count.ToString(); }
void AddPrivateKey() { MMCActionHelper.CheckedExec(delegate() { var frm = new FormAddPrivateKey(); if (MMCDlgHelper.ShowForm(frm)) { var dto = frm.PrivateKeyDTO; string storeName = (string)Tag; string storePass = ""; using (var session = new VecsStoreSession(ServerDTO.VecsClient, storeName, storePass)) { session.AddPrivateKeyEntry(dto.Alias, dto.PrivateKey, dto.Password, dto.Certificate); } if (ListView != null) { ListView.Refresh(); } } }); }
void AddSecretKey() { MMCActionHelper.CheckedExec(delegate() { var frm = new FormAddSecretKey(); if (MMCDlgHelper.ShowForm(frm)) { var dto = frm.SecretKeyDTO; string storeName = (string)Tag; string storePass = ""; using (var session = new VecsStoreSession(ServerDTO.VecsClient, storeName, storePass)) { // add secret key to session here. session.AddSecretKeyEntry(dto.Alias, dto.SecretKey, dto.Password, null); } if (ListView != null) { ListView.Refresh(); } } }); }
public async void FillServerInfo() { try { var stores = ServerDTO.VecsClient.GetStores(); IsDetailsLoaded = true; StoresInfo.Clear(); foreach (var store in stores) { var storePass = ""; using (var session = new VecsStoreSession(ServerDTO.VecsClient, store, storePass)) { //store add StoresInfo.Add(store, new CertBagItem() { PrivateKeys = session.GetPrivateKeys().Concat(session.GetEncryptedPrivateKeys()).ToList(), SecretKeys = session.GetSecretKeys().ToList(), Certs = session.GetCertificates().ToList() }); } } CalculateKeyInfo(); } catch (Exception e) { // do nothing in async task. } }