Example #1
0
    def askTrustSiteCertificate(self, pem, reconnect):
        import M2Crypto.X509 as X509
        import osaf.framework.certstore.certificate as certificate

        x509 = X509.load_cert_string(pem)
        fingerprint = certificate._fingerprint(x509)
        # XXX Need to design real dialog
        dlg = wx.SingleChoiceDialog(
            wx.GetApp().mainFrame,
            "Do you want to trust this certificate?\n" + "SHA1 fingerprint: " + fingerprint + "\n" + x509.as_text(),
            "Trust Site Certificate?",
            choices=[
                "Trust the authenticity of this certificate until program exit.",
                "Trust the authenticity of this certificate permanently.",
            ],
        )
        try:
            if dlg.ShowModal() == wx.ID_OK:
                selection = dlg.GetSelection()

                if selection == 0:
                    import crypto.ssl as ssl

                    ssl.trusted_until_shutdown_site_certs += [pem]
                else:
                    certificate._importCertificate(x509, fingerprint, certificate.TRUST_AUTHENTICITY, self.itsView)

                reconnect()
        finally:
            dlg.Destroy()
Example #2
0
 def askTrustSiteCertificate(self, pem, reconnect):
     import M2Crypto.X509 as X509
     import osaf.framework.certstore.certificate as certificate
     x509 = X509.load_cert_string(pem)
     fingerprint = certificate._fingerprint(x509)
     # XXX Need to design real dialog
     dlg = wx.SingleChoiceDialog(wx.GetApp().mainFrame,
                                'Do you want to trust this certificate?\n' +
                                'SHA1 fingerprint: ' + fingerprint +
                                '\n' + x509.as_text(),
                                'Trust Site Certificate?',
                                choices=['Trust the authenticity of this certificate until program exit.',
                                         'Trust the authenticity of this certificate permanently.'])
     try:
         if dlg.ShowModal() == wx.ID_OK:
             selection = dlg.GetSelection()
         
             if selection == 0:
                 import crypto.ssl as ssl
                 ssl.trusted_until_shutdown_site_certs += [pem]
             else:
                 certificate._importCertificate(x509, fingerprint, certificate.TRUST_AUTHENTICITY, self.itsView)
 
             reconnect()
     finally:
         dlg.Destroy()
Example #3
0
    def _importAndFind(self, pem, trust):
        x509 = X509.load_cert_string(pem)
        fingerprint = certificate._fingerprint(x509)
        certificate._importCertificate(x509, fingerprint, trust, self.rep.view)

        qString = u'for i in "//parcels/osaf/framework/certstore/Certificate" where i.fingerprint == "%s"' % fingerprint

        qName = 'fpCertQuery' + fingerprint
        q = self.rep.view.findPath('//Queries/%s' % (qName))
        if q is None:
            p = self.rep.view.findPath('//Queries')
            k = self.rep.view.findPath('//Schema/Core/Query')
            q = Query.Query(qName, p, k, qString)

        assert len(q) == 1

        for cert in q:  #q[0] does not seem to work
            return cert
Example #4
0
 def _importAndFind(self, pem, trust):
     x509 = X509.load_cert_string(pem)
     fingerprint = certificate._fingerprint(x509)
     certificate._importCertificate(x509,
                                   fingerprint,
                                   trust,
                                   self.rep.view)
     
     qString = u'for i in "//parcels/osaf/framework/certstore/Certificate" where i.fingerprint == "%s"' % fingerprint
     
     qName = 'fpCertQuery' + fingerprint
     q = self.rep.view.findPath('//Queries/%s' %(qName))
     if q is None:
         p = self.rep.view.findPath('//Queries')
         k = self.rep.view.findPath('//Schema/Core/Query')
         q = Query.Query(qName, p, k, qString)
         
     assert len(q) == 1
     
     for cert in q: #q[0] does not seem to work
         return cert