Ejemplo n.º 1
0
        public override NSMenu MenuForEvent(NSEvent theEvent)
        {
            CGPoint pt  = this.ConvertPointToView(theEvent.LocationInWindow, null);
            nint    row = this.GetRow(pt);

            if (row >= (nint)0)
            {
                NSObject obj = this.ItemAtRow((int)row);
                if (obj != null)
                {
                    NSMenu menu = new NSMenu();
                    if (obj is VMCAServerNode)
                    {
                        VMCAServerNode serverNode = obj as VMCAServerNode;
                        if (serverNode.IsLoggedIn)
                        {
                            NSMenuItem getVersion = new NSMenuItem("Get Server Version", serverNode.GetServerVersion);
                            menu.AddItem(getVersion);
                            NSMenuItem showRoot = new NSMenuItem("Show Root Certificate", serverNode.ShowRootCertificate);
                            menu.AddItem(showRoot);
                            NSMenuItem addCert = new NSMenuItem("Add Root Certificate", serverNode.AddRootCertificate);
                            menu.AddItem(addCert);
                        }
                    }
                    else if (obj is VMCAKeyPairNode)
                    {
                        VMCAKeyPairNode node          = obj as VMCAKeyPairNode;
                        NSMenuItem      createKeyPair = new NSMenuItem("Create KeyPair", node.CreateKeyPair);
                        menu.AddItem(createKeyPair);
                    }
                    else if (obj is VMCACSRNode)
                    {
                        VMCACSRNode node = obj as VMCACSRNode;
                        NSMenuItem  createSigningRequest = new NSMenuItem("Create Signing Request", node.HandleSigningRequest);
                        menu.AddItem(createSigningRequest);
                    }
                    else if (obj is VMCAPersonalCertificatesNode)
                    {
                        VMCAPersonalCertificatesNode node = obj as VMCAPersonalCertificatesNode;
                        NSMenuItem createCertificate      = new NSMenuItem("Create Self Signed Certificate", node.CreateCertificate);
                        menu.AddItem(createCertificate);
                        NSMenuItem createCASingedCertificate = new NSMenuItem("Create CA Signed Certificate", node.CreateCASignedCertificate);
                        menu.AddItem(createCASingedCertificate);
                    }
                    NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView);
                }
            }
            return(base.MenuForEvent(theEvent));
        }
Ejemplo n.º 2
0
 public void OnClickCreateKey(object sender, EventArgs eventargs)
 {
     if (KeyLength.SelectedValue != null)
     {
         var numKeyLength = KeyLength.SelectedValue.ToString();
         var keyPair      = VMCAKeyPair.Create(Convert.ToUInt32(numKeyLength));
         PrivateKeyTextView.Value = keyPair.PrivateKey;
         ConfirmationDialogController dlg = new ConfirmationDialogController("Do you want to save the Keys?");
         //dlg.ConfirmLabel.StringValue = ;
         int result = (int)NSApplication.SharedApplication.RunModalForWindow(dlg.Window);
         if (result == Constants.DIALOGOK)
         {
             VMCAKeyPairNode.SaveKeyData(keyPair);
         }
     }
     else
     {
         UIErrorHelper.ShowAlert("", "Please enter a value for Key Length");
     }
 }
Ejemplo n.º 3
0
        public void DisplayRightPaneKeyPairView(NSObject item)
        {
            try {
                //add respective columns
                NSTableColumn col1 = new NSTableColumn("CreatedDate");
                col1.HeaderCell.Title = "Created Date";
                col1.Width            = 150;
                col1.DataCell         = new NSBrowserCell();
                splitViewController.MainTableView.AddColumn(col1);
                NSTableColumn col2 = new NSTableColumn("KeyLength");
                col2.HeaderCell.Title = "Key Length";
                col2.Width            = 150;
                splitViewController.MainTableView.AddColumn(col2);

                VMCAKeyPairNode node = item as VMCAKeyPairNode;
                splitViewController.MainTableView.DataSource = new KeyPairDetailListView(node.ServerDTO.KeyPairs);
            } catch (Exception e) {
                UIErrorHelper.ShowAlert("", e.Message);
            }
        }
Ejemplo n.º 4
0
        public override NSMenu MenuForEvent(NSEvent theEvent)
        {
            UIErrorHelper.CheckedExec(delegate() {
                CGPoint pt   = this.ConvertPointFromView(theEvent.LocationInWindow, null);
                _selectedRow = this.GetRow(pt);
                //get datasource and node information
                NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource;
                NSMenu menu = new NSMenu();
                if (_selectedRow >= 0)
                {
                    if (ds is NodesListView)
                    {
                        string data = (ds as NodesListView).Entries [(int)_selectedRow].DisplayName;
                        switch (data)
                        {
                        case "Key Pairs":
                            NSMenuItem createKeyPair = new NSMenuItem("Create Key Pair", HandleKeyPairRequest);
                            menu.AddItem(createKeyPair);
                            break;

                        case "Certificates":
                            NSMenuItem createCertificate = new NSMenuItem("Create Certificate", HandleCreateSelfSignedCertificate);
                            menu.AddItem(createCertificate);
                            break;

                        case "Signing Requests":
                            NSMenuItem createSigningRequest = new NSMenuItem("Create SigningRequest", HandleCreateSigningRequest);
                            menu.AddItem(createSigningRequest);
                            break;

                        default:
                            break;
                        }
                    }
                    else if (ds is CertificateDetailsListView || ds is PrivateCertsListView)
                    {
                        X509Certificate2 cert = null;
                        if (ds is CertificateDetailsListView)
                        {
                            CertificateDetailsListView lw = ds as CertificateDetailsListView;
                            cert = lw.Entries [(int)_selectedRow];
                            if (lw.CertificateState == (int)VMCA.CertificateState.Active)
                            {
                                NSMenuItem revokeCert = new NSMenuItem("Revoke Certificate", (object sender, EventArgs e) => {
                                    UIErrorHelper.CheckedExec(delegate() {
                                        VMCACertificateService.RevokeCertificate(cert, lw.ServerDto);
                                        NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadAll", this);
                                    });
                                });
                                menu.AddItem(revokeCert);
                            }
                        }
                        if (ds is PrivateCertsListView)
                        {
                            cert = CertificateExtensions.GetX509Certificate2FromString((ds as PrivateCertsListView).Entries [(int)_selectedRow].Certificate);
                        }
                        NSMenuItem showCert = new NSMenuItem("Show Certificate", (object sender, EventArgs e) => {
                            CertificateService.DisplayX509Certificate2(this, cert);
                        });
                        menu.AddItem(showCert);

                        NSMenuItem showCertString = new NSMenuItem("Show Certificate String", (object sender, EventArgs e) => {
                            UIHelper.ShowGenericWindowAsSheet(VMCACertificate.GetCertificateAsString(cert), "Certificate String", VMCAAppEnvironment.Instance.MainWindow);
                        });
                        menu.AddItem(showCertString);

                        /* if (lw.CertificateState == -1) {
                         * NSMenuItem deleteString = new NSMenuItem ("Delete Certificate", (object sender, EventArgs e) => {
                         *  lw.ServerDto.PrivateCertificates.RemoveAll (x => x.Certificate.Equals (cert.ToString ()));
                         *  NSNotificationCenter.DefaultCenter.PostNotificationName ("ReloadTableView", this);
                         *
                         * });
                         * menu.AddItem (deleteString);
                         * }*/
                    }
                    else if (ds is CSRDetailListView)
                    {
                        CSRDetailListView lw = ds as CSRDetailListView;
                        var csr             = lw.Entries [(int)_selectedRow].CSR;
                        NSMenuItem showCert = new NSMenuItem("Show CSR", (object sender, EventArgs e) => {
                            UIHelper.ShowGenericWindowAsSheet(csr, "CSR", VMCAAppEnvironment.Instance.MainWindow);
                        });
                        menu.AddItem(showCert);
                    }
                    else if (ds is KeyPairDetailListView)
                    {
                        KeyPairDetailListView lw = ds as KeyPairDetailListView;
                        var privateKey           = lw.Entries [(int)_selectedRow].PrivateKey;
                        var publicKey            = lw.Entries [(int)_selectedRow].PublicKey;
                        KeyPairData keyPair      = new KeyPairData(privateKey, publicKey);
                        NSMenuItem showCert      = new NSMenuItem("Export KeyPair", (object sender, EventArgs e) => {
                            VMCAKeyPairNode.SaveKeyData(keyPair);
                        });
                        menu.AddItem(showCert);
                    }
                    NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView);
                }
            });
            return(base.MenuForEvent(theEvent));
        }