Ignore:
Timestamp:
17/12/08 14:46:43 (11 years ago)
Author:
pjkersha
Message:

Re-run unit tests following fixes:

  • BaseSignatureHandler?.SignatureHandler? - important fix to setCert method
  • ndg.security.server.wsgi.openid.provider.OpenIDProviderMiddleware fix to _filterOpts
  • update to remaining certs due to expire in the unit tests dirs.
Location:
TI12-security/trunk/python/ndg.security.common/ndg/security/common
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/X509.py

    r4671 r4672  
    3131class X509CertReadError(X509CertError): 
    3232    """Error reading in certificate from file""" 
    33      
     33 
     34class X509CertParseError(X509CertError): 
     35    """Error parsing a certificate""" 
     36   
    3437class X509CertInvalidNotBeforeTime(X509CertError): 
    3538    """Call from X509Cert.isValidTime if certificates not before time is 
     
    4346    "NDG X509 Certificate Handling" 
    4447 
     48    formatPEM = M2Crypto.X509.FORMAT_PEM 
     49    formatDER = M2Crypto.X509.FORMAT_DER 
     50     
    4551    def __init__(self, filePath=None, m2CryptoX509=None): 
    4652 
     
    6066         
    6167 
    62     def read(self, filePath=None, **isValidTimeKw): 
    63         """Read a certificate from PEM encoded file 
     68    def read(self,  
     69             filePath=None,  
     70             format=None,  
     71             warningStackLevel=3, 
     72             **isValidTimeKw): 
     73        """Read a certificate from PEM encoded DER format file 
    6474         
    6575        @type filePath: basestring 
    6676        @param filePath: file path of PEM format file to be read 
    6777         
     78        @type format: int 
     79        @param format: format of input file - PEM is the default.  Set to 
     80        X509Cert.formatDER for DER format 
     81         
    6882        @type isValidTimeKw: dict 
    6983        @param isValidTimeKw: keywords to isValidTime() call""" 
     84 
     85        if format is None: 
     86            format = X509Cert.formatPEM 
    7087         
    7188        # Check for optional input certificate file path 
     
    7895        
    7996        try: 
    80             self.__m2CryptoX509 = M2Crypto.X509.load_cert(self.__filePath) 
     97            self.__m2CryptoX509 = M2Crypto.X509.load_cert(self.__filePath, 
     98                                                          format=format) 
    8199        except Exception, e: 
    82100            raise X509CertReadError("Error loading certificate \"%s\": %s" % 
     
    87105        self.__setM2CryptoX509() 
    88106         
    89         if 'warningStackLevel'not in isValidTimeKw: 
    90             isValidTimeKw['warningStackLevel'] = 3 
    91              
    92         self.isValidTime(**isValidTimeKw) 
    93  
    94  
    95     def parse(self, certTxt, **isValidTimeKw): 
     107        self.isValidTime(warningStackLevel=warningStackLevel, **isValidTimeKw) 
     108 
     109 
     110    def parse(self,  
     111              certTxt,  
     112              format=None,  
     113              warningStackLevel=3, 
     114              **isValidTimeKw): 
    96115        """Read a certificate input as a string 
    97116         
     
    99118        @param certTxt: PEM encoded certificate to parse  
    100119         
     120        @type format: int 
     121        @param format: format of input file - PEM is the default.  Set to 
     122        X509Cert.formatDER for DER format 
     123         
    101124        @type isValidTimeKw: dict 
    102125        @param isValidTimeKw: keywords to isValidTime() call""" 
    103126 
     127        if format is None: 
     128            format = X509Cert.formatPEM 
     129             
    104130        try: 
    105131            # Create M2Crypto memory buffer and pass to load certificate 
     
    108134            # Nb. input converted to standard string - buffer method won't 
    109135            # accept unicode type strings 
    110             certBIO = M2Crypto.BIO.MemoryBuffer(str(certTxt)) 
    111             self.__m2CryptoX509 = M2Crypto.X509.load_cert_bio(certBIO) 
    112              
     136#            certBIO = M2Crypto.BIO.MemoryBuffer(str(certTxt)) 
     137#            self.__m2CryptoX509 = M2Crypto.X509.load_cert_bio(certBIO) 
     138            self.__m2CryptoX509 = M2Crypto.X509.load_cert_string(str(certTxt), 
     139                                                                 format=format) 
    113140        except Exception, e: 
    114             raise X509CertError("Error loading certificate: %s" % e) 
     141            raise X509CertParseError("Error loading certificate: %s" % e) 
    115142 
    116143        # Update DN and validity times from M2Crypto X509 object just 
     
    118145        self.__setM2CryptoX509() 
    119146         
    120          
    121         if 'warningStackLevel'not in isValidTimeKw: 
    122             isValidTimeKw['warningStackLevel'] = 3 
    123                      
    124         self.isValidTime(**isValidTimeKw) 
     147        self.isValidTime(warningStackLevel=warningStackLevel, **isValidTimeKw) 
    125148 
    126149       
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/wssecurity/BaseSignatureHandler.py

    r4656 r4672  
    433433         
    434434        @type: ndg.security.common.X509.X509Cert / M2Crypto.X509.X509 / 
    435         string or None 
     435        PEM encoded string or None 
    436436        @param cert: X.509 certificate.   
    437437         
     
    448448             
    449449        elif isinstance(cert, basestring): 
     450            # Nb. Assume PEM encoded string! 
    450451            x509Cert = X509CertParse(cert) 
    451452         
     
    458459        if x509Cert:    
    459460            x509Cert.isValidTime(raiseExcep=True) 
     461             
     462        return x509Cert 
    460463 
    461464     
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/wssecurity/dom.py

    r4479 r4672  
    689689                    # Remove base 64 encoding 
    690690                    derString = base64.decodestring(x509CertTxt) 
    691                      
    692                     # Load from DER format into M2Crypto.X509 
    693                     m2X509Cert = X509.load_cert_string(derString, 
    694                                                        format=X509.FORMAT_DER) 
    695                     self.verifyingCert = m2X509Cert 
    696                      
     691                    self.verifyingCert = X509Cert.Parse(derString,  
     692                                                    format=X509Cert.formatDER) 
    697693                    x509Stack = X509Stack() 
    698694 
     
    708704                else: 
    709705                    raise WSSecurityError("BinarySecurityToken ValueType " 
    710                                           'attribute is not recognised: "%s"'%\ 
     706                                          'attribute is not recognised: "%s"' % 
    711707                                          valueType) 
    712708                                
    713709            except Exception, e: 
    714710                raise VerifyError("Error extracting BinarySecurityToken " 
    715                                   "from WSSE header: " % e) 
     711                                  "from WSSE header: %s" % e) 
    716712 
    717713        if self.verifyingCert is None: 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/wssecurity/etree.py

    r4404 r4672  
    647647                # Remove base 64 encoding 
    648648                derString = base64.decodestring(x509CertTxt) 
    649                  
    650                 # Load from DER format into M2Crypto.X509 
    651                 m2X509Cert = X509.load_cert_string(derString, 
    652                                                    format=X509.FORMAT_DER) 
    653                 self.__setVerifyingCert(m2X509Cert) 
     649                self.verifyingCert = X509Cert.Parse(derString,  
     650                                                    format=X509Cert.formatDER) 
    654651                 
    655652                x509Stack = X509Stack() 
    656653 
    657             elif valueType == \ 
    658                 self.binSecTokValType['X509PKIPathv1']: 
     654            elif valueType == self.binSecTokValType['X509PKIPathv1']: 
    659655                 
    660656                derString = base64.decodestring(x509CertTxt) 
     
    665661                self.verifyingCert = x509Stack[-1] 
    666662            else: 
    667                 raise WSSecurityError('BinarySecurityToken ValueType ' \ 
    668                     'attribute is not recognised: "%s"' % valueType) 
     663                raise WSSecurityError('BinarySecurityToken ValueType ' 
     664                                      'attribute is not recognised: "%s"' %  
     665                                      valueType) 
    669666 
    670667        if self.verifyingCert is None: 
    671             raise VerifyError("No certificate set for verification of the " \ 
     668            raise VerifyError("No certificate set for verification of the " 
    672669                              "signature") 
    673670         
Note: See TracChangeset for help on using the changeset viewer.