Changeset 417


Ignore:
Timestamp:
02/06/05 18:04:56 (14 years ago)
Author:
pjkersha
Message:

AttrCert?: added eq method and fixed refs to data correcting to
dat.

Location:
security/trunk/python
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • security/trunk/python/NDG.BAK/AttAuthority.py

    r414 r417  
    124124 
    125125 
    126     def createAttrCert(self, usrProxyCertFilePath, extAttrCertFilePath=None): 
     126    def createAttrCert(self, 
     127                       usrProxyCertFilePath, 
     128                       extAttrCertFilePath=None, 
     129                       extAttrCertFileTxt=None): 
    127130 
    128131        """Create a new Attribute Certificate 
    129132 
    130133        usrProxyCertFilePath:   file path to user's proxy certificate 
    131         extAttrCertFilePath:    file path to externally provided 
    132                                 attribute certificate from another data 
    133                                 centre.  This is only necessary if the 
    134                                 user is not registered with this 
    135                                 attribute authority. 
     134        extAttrCertFilePath|extAttrCertFileTxt: 
     135         
     136                                externally provided attribute certificate 
     137                                from another data centre.  This is only 
     138                                necessary if the user is not registered with 
     139                                this attribute authority. 
     140 
     141                                Pass in either the file path or a string 
     142                                containing the certificate XML content. 
    136143                                """ 
    137144 
     
    211218            # Check for an externally provided certificate from another 
    212219            # trusted data centre 
     220            extAttrCert = AttrCert(trustedCertFilePath=self.__caCertFilePath) 
     221             
    213222            if extAttrCertFilePath is None: 
    214                 raise AttrAuthorityError(\ 
     223                if extAttrCertFileTxt is None: 
     224                    raise AttrAuthorityError(\ 
    215225                    "User \"%s\" is not registered " % attrCert['holder'] + \ 
    216226                    "and no external attribute certificate is available " + \ 
    217227                    " to make a mapping") 
    218228 
    219             # Read externally provided certificate (i.e. from a trusted data 
    220             # centre) 
    221             try: 
    222                 extAttrCert = AttrCert(extAttrCertFilePath, 
    223                                    trustedCertFilePath=self.__caCertFilePath) 
    224                 extAttrCert.read() 
    225                  
    226             except AttrCertError, attrCertErr: 
    227                 raise AttrAuthorityError(\ 
    228                 "External Attribute Certificate error: " + str(attrCertErr)) 
     229                else: 
     230                    # Parse externally provided certificate                     try: 
     231                    try: 
     232                        extAttrCert.parse(extAttrCertFileTxt) 
     233                         
     234                    except AttrCertError, attrCertErr: 
     235                        raise AttrAuthorityError(\ 
     236                            "External Attribute Certificate error: " + \ 
     237                            str(attrCertErr))                     
     238            else: 
     239                # Read externally provided certificate 
     240                try: 
     241                    extAttrCert.read(extAttrCertFilePath) 
     242                     
     243                except AttrCertError, attrCertErr: 
     244                    raise AttrAuthorityError(\ 
     245                        "External Attribute Certificate error: " + \ 
     246                        str(attrCertErr)) 
    229247 
    230248 
  • security/trunk/python/NDG.BAK/AttCert.py

    r410 r417  
    190190         
    191191 
     192    def __eq__(self, attrCert): 
     193        """Return true if all elements are the same""" 
     194         
     195        try: 
     196            return min([self.__dat[key] == attrCert[key] \ 
     197                       for key in self.__dat.keys()]) 
     198        except: 
     199            return False 
     200         
     201 
    192202    def clear(self): 
    193         raise AttrCertError("Data cannot be cleared from " + X500DN.__name__) 
     203        raise AttrCertError("Data cannot be cleared from " + AttrCert.__name__) 
    194204 
    195205     
     
    201211     
    202212    def keys(self): 
    203         return self.__data.keys() 
     213        return self.__dat.keys() 
    204214 
    205215    def items(self): 
    206         return self.__data.items() 
     216        return self.__dat.items() 
    207217 
    208218    def values(self): 
    209         return self.__data.values() 
     219        return self.__dat.values() 
    210220 
    211221    def has_key(self): 
    212         return self.__data.has_key() 
     222        return self.__dat.has_key() 
     223 
    213224 
    214225    def getExptdVersion(self): 
     
    349360 
    350361 
    351          
    352     def read(self, filePath=None, bRetStringBuf=False): 
    353  
    354         """Read Attribute Certificate""" 
     362 
     363    def parse(self, xmlTxt): 
     364 
     365        """Parse an Attribute Certificate content contained in string input 
     366 
     367        xmlTxt:     Attribute Certificate XML content as string""" 
     368         
     369        rootElem = ElementTree.XML(xmlTxt) 
     370 
     371        # Call generic ElementTree parser 
     372        self.__parse(rootElem) 
     373 
     374 
     375        # Call base class parser method to initialise libxml2 objects for 
     376        # signature validation 
     377        try: 
     378            xmlSigDoc.parse(self, xmlTxt) 
     379 
     380        except xmlSigDocError, xmlSigDocErr: 
     381            raise AttrCertError(str(xmlSigDocErr)) 
     382 
     383 
     384 
     385         
     386    def read(self, filePath=None): 
     387 
     388        """Read Attribute Certificate 
     389 
     390        filePath:   file to be read, if omitted __filePath member variable is 
     391                    used instead""" 
    355392 
    356393        if filePath: 
     
    364401        rootElem = tree.getroot() 
    365402 
    366   
     403        # Call generic ElementTree parser 
     404        self.__parse(rootElem, **parseKeyWds) 
     405 
     406 
     407        # Call base class read method to initialise libxml2 objects for 
     408        # signature validation 
     409        try: 
     410            xmlSigDoc.read(self) 
     411 
     412        except xmlSigDocError, xmlSigDocErr: 
     413            raise AttrCertError(str(xmlSigDocErr)) 
     414 
     415 
     416 
     417         
     418    def __parse(self, rootElem): 
     419 
     420        """Private XML parsing method accepts a ElementTree.Element type 
     421        as input 
     422 
     423        rootElem:       ElementTree.Element type 
     424        """ 
     425         
    367426        # Extract from acInfo tag 
    368427        acInfoElem = rootElem.find("acInfo") 
     
    440499                  AttrCert.__version + ' expected') 
    441500 
    442  
    443         # Call base class read method to initialise libxml2 objects for 
    444         # signature validation 
    445         try: 
    446             xmlSigDoc.read(self) 
    447  
    448         except xmlSigDocError, xmlSigDocErr: 
    449             raise AttrCertError(str(xmlSigDocErr)) 
    450501 
    451502 
  • security/trunk/python/NDG.BAK/xmlSigDoc.py

    r410 r417  
    172172 
    173173        # Create new doc and reset flag 
    174         self.__libxml2Doc = libxml2.parseDoc(xmlTxt) 
     174        try: 
     175            self.__libxml2Doc = libxml2.parseDoc(xmlTxt) 
     176 
     177        except Exception, excep: 
     178            raise xmlSigDocError("Error parsing dccument: %s" % str(excep)) 
    175179         
    176180        if self.__libxml2Doc is None or \ 
     
    193197 
    194198        # Create new doc and reset flag 
    195         self.__libxml2Doc = libxml2.parseFile(self.__filePath) 
     199        try: 
     200            self.__libxml2Doc = libxml2.parseFile(self.__filePath) 
     201 
     202        except Exception, excep: 
     203            raise xmlSigDocError("Error parsing file: %s" % str(excep)) 
     204 
    196205         
    197206        if self.__libxml2Doc is None or \ 
     
    291300            self.__keysMngr.destroy() 
    292301            self.__bkeysMngrFreed = True 
     302 
     303 
     304 
     305     
     306    def parse(self, xmlTxt): 
     307 
     308        """Parse string containing XML into a libxml2 document to allow 
     309        signature validation""" 
     310 
     311        self.__libxml2ParseDoc(xmlTxt) 
    293312 
    294313 
  • security/trunk/python/NDG/AttAuthority.py

    r414 r417  
    124124 
    125125 
    126     def createAttrCert(self, usrProxyCertFilePath, extAttrCertFilePath=None): 
     126    def createAttrCert(self, 
     127                       usrProxyCertFilePath, 
     128                       extAttrCertFilePath=None, 
     129                       extAttrCertFileTxt=None): 
    127130 
    128131        """Create a new Attribute Certificate 
    129132 
    130133        usrProxyCertFilePath:   file path to user's proxy certificate 
    131         extAttrCertFilePath:    file path to externally provided 
    132                                 attribute certificate from another data 
    133                                 centre.  This is only necessary if the 
    134                                 user is not registered with this 
    135                                 attribute authority. 
     134        extAttrCertFilePath|extAttrCertFileTxt: 
     135         
     136                                externally provided attribute certificate 
     137                                from another data centre.  This is only 
     138                                necessary if the user is not registered with 
     139                                this attribute authority. 
     140 
     141                                Pass in either the file path or a string 
     142                                containing the certificate XML content. 
    136143                                """ 
    137144 
     
    211218            # Check for an externally provided certificate from another 
    212219            # trusted data centre 
     220            extAttrCert = AttrCert(trustedCertFilePath=self.__caCertFilePath) 
     221             
    213222            if extAttrCertFilePath is None: 
    214                 raise AttrAuthorityError(\ 
     223                if extAttrCertFileTxt is None: 
     224                    raise AttrAuthorityError(\ 
    215225                    "User \"%s\" is not registered " % attrCert['holder'] + \ 
    216226                    "and no external attribute certificate is available " + \ 
    217227                    " to make a mapping") 
    218228 
    219             # Read externally provided certificate (i.e. from a trusted data 
    220             # centre) 
    221             try: 
    222                 extAttrCert = AttrCert(extAttrCertFilePath, 
    223                                    trustedCertFilePath=self.__caCertFilePath) 
    224                 extAttrCert.read() 
    225                  
    226             except AttrCertError, attrCertErr: 
    227                 raise AttrAuthorityError(\ 
    228                 "External Attribute Certificate error: " + str(attrCertErr)) 
     229                else: 
     230                    # Parse externally provided certificate                     try: 
     231                    try: 
     232                        extAttrCert.parse(extAttrCertFileTxt) 
     233                         
     234                    except AttrCertError, attrCertErr: 
     235                        raise AttrAuthorityError(\ 
     236                            "External Attribute Certificate error: " + \ 
     237                            str(attrCertErr))                     
     238            else: 
     239                # Read externally provided certificate 
     240                try: 
     241                    extAttrCert.read(extAttrCertFilePath) 
     242                     
     243                except AttrCertError, attrCertErr: 
     244                    raise AttrAuthorityError(\ 
     245                        "External Attribute Certificate error: " + \ 
     246                        str(attrCertErr)) 
    229247 
    230248 
  • security/trunk/python/NDG/AttCert.py

    r410 r417  
    190190         
    191191 
     192    def __eq__(self, attrCert): 
     193        """Return true if all elements are the same""" 
     194         
     195        try: 
     196            return min([self.__dat[key] == attrCert[key] \ 
     197                       for key in self.__dat.keys()]) 
     198        except: 
     199            return False 
     200         
     201 
    192202    def clear(self): 
    193         raise AttrCertError("Data cannot be cleared from " + X500DN.__name__) 
     203        raise AttrCertError("Data cannot be cleared from " + AttrCert.__name__) 
    194204 
    195205     
     
    201211     
    202212    def keys(self): 
    203         return self.__data.keys() 
     213        return self.__dat.keys() 
    204214 
    205215    def items(self): 
    206         return self.__data.items() 
     216        return self.__dat.items() 
    207217 
    208218    def values(self): 
    209         return self.__data.values() 
     219        return self.__dat.values() 
    210220 
    211221    def has_key(self): 
    212         return self.__data.has_key() 
     222        return self.__dat.has_key() 
     223 
    213224 
    214225    def getExptdVersion(self): 
     
    349360 
    350361 
    351          
    352     def read(self, filePath=None, bRetStringBuf=False): 
    353  
    354         """Read Attribute Certificate""" 
     362 
     363    def parse(self, xmlTxt): 
     364 
     365        """Parse an Attribute Certificate content contained in string input 
     366 
     367        xmlTxt:     Attribute Certificate XML content as string""" 
     368         
     369        rootElem = ElementTree.XML(xmlTxt) 
     370 
     371        # Call generic ElementTree parser 
     372        self.__parse(rootElem) 
     373 
     374 
     375        # Call base class parser method to initialise libxml2 objects for 
     376        # signature validation 
     377        try: 
     378            xmlSigDoc.parse(self, xmlTxt) 
     379 
     380        except xmlSigDocError, xmlSigDocErr: 
     381            raise AttrCertError(str(xmlSigDocErr)) 
     382 
     383 
     384 
     385         
     386    def read(self, filePath=None): 
     387 
     388        """Read Attribute Certificate 
     389 
     390        filePath:   file to be read, if omitted __filePath member variable is 
     391                    used instead""" 
    355392 
    356393        if filePath: 
     
    364401        rootElem = tree.getroot() 
    365402 
    366   
     403        # Call generic ElementTree parser 
     404        self.__parse(rootElem, **parseKeyWds) 
     405 
     406 
     407        # Call base class read method to initialise libxml2 objects for 
     408        # signature validation 
     409        try: 
     410            xmlSigDoc.read(self) 
     411 
     412        except xmlSigDocError, xmlSigDocErr: 
     413            raise AttrCertError(str(xmlSigDocErr)) 
     414 
     415 
     416 
     417         
     418    def __parse(self, rootElem): 
     419 
     420        """Private XML parsing method accepts a ElementTree.Element type 
     421        as input 
     422 
     423        rootElem:       ElementTree.Element type 
     424        """ 
     425         
    367426        # Extract from acInfo tag 
    368427        acInfoElem = rootElem.find("acInfo") 
     
    440499                  AttrCert.__version + ' expected') 
    441500 
    442  
    443         # Call base class read method to initialise libxml2 objects for 
    444         # signature validation 
    445         try: 
    446             xmlSigDoc.read(self) 
    447  
    448         except xmlSigDocError, xmlSigDocErr: 
    449             raise AttrCertError(str(xmlSigDocErr)) 
    450501 
    451502 
  • security/trunk/python/NDG/XMLSecDoc.py

    r410 r417  
    172172 
    173173        # Create new doc and reset flag 
    174         self.__libxml2Doc = libxml2.parseDoc(xmlTxt) 
     174        try: 
     175            self.__libxml2Doc = libxml2.parseDoc(xmlTxt) 
     176 
     177        except Exception, excep: 
     178            raise xmlSigDocError("Error parsing dccument: %s" % str(excep)) 
    175179         
    176180        if self.__libxml2Doc is None or \ 
     
    193197 
    194198        # Create new doc and reset flag 
    195         self.__libxml2Doc = libxml2.parseFile(self.__filePath) 
     199        try: 
     200            self.__libxml2Doc = libxml2.parseFile(self.__filePath) 
     201 
     202        except Exception, excep: 
     203            raise xmlSigDocError("Error parsing file: %s" % str(excep)) 
     204 
    196205         
    197206        if self.__libxml2Doc is None or \ 
     
    291300            self.__keysMngr.destroy() 
    292301            self.__bkeysMngrFreed = True 
     302 
     303 
     304 
     305     
     306    def parse(self, xmlTxt): 
     307 
     308        """Parse string containing XML into a libxml2 document to allow 
     309        signature validation""" 
     310 
     311        self.__libxml2ParseDoc(xmlTxt) 
    293312 
    294313 
Note: See TracChangeset for help on using the changeset viewer.