Changeset 4642


Ignore:
Timestamp:
15/12/08 14:52:18 (11 years ago)
Author:
pjkersha
Message:

#941: MyProxyClient egg

  • added documentation/ for epydoc files with Makefile to generate them
  • re-arranging main package structure.
Location:
TI12-security/trunk/python/MyProxyClient
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/MyProxyClient/myproxy.py

    r4637 r4642  
    7777    def __call__(self, peerCert, host=None): 
    7878        """Carry out checks on server ID 
     79        @type peerCert: basestring 
    7980        @param peerCert: MyProxy server host certificate as M2Crypto.X509.X509 
    8081        instance 
     82        @type host: basestring 
    8183        @param host: name of host to check 
    8284        """ 
  • TI12-security/trunk/python/MyProxyClient/openssl.py

    r4623 r4642  
    1717from M2Crypto.X509 import X509_Name 
    1818 
    19 #_____________________________________________________________________________         
    2019class OpenSSLConfigError(Exception): 
    2120    """Exceptions related to OpenSSLConfig class"""    
    2221 
    2322 
    24 #_____________________________________________________________________________         
    2523class OpenSSLConfig(SafeConfigParser, object): 
    2624    """Wrapper to OpenSSL Configuration file to allow extraction of 
     
    2927    @type _certReqDNParamName: tuple 
    3028    @cvar _certReqDNParamName: permissable keys for Distinguished Name 
    31     (not including CN which gets set separately).  This is used in __setReqDN 
     29    (not including CN which gets set separately).  This is used in _setReqDN 
    3230    to check input 
    3331     
    3432    @type _caDirPat: string 
    3533    @cvar _caDirPat: sub-directory path to CA config directory 
    36     @type __gridCASubDir: string 
    37     @cvar __gridCASubDir: sub-directory of globus user for CA settings""" 
    38      
    39     _certReqDNParamName = X509_Name.nid.keys() 
    40      
    41     _caDirPat = re.compile('\$dir') 
    42      
    43     __gridCASubDir = os.path.join(".globus", "simpleCA") 
     34    @type _gridCASubDir: string 
     35    @cvar _gridCASubDir: sub-directory of globus user for CA settings""" 
     36     
     37    _certReqDNParamName = X509_Name.nid.keys()     
     38    _caDirPat = re.compile('\$dir')     
     39    _gridCASubDir = os.path.join(".globus", "simpleCA") 
    4440 
    4541     
     
    5854        SafeConfigParser.__init__(self) 
    5955         
    60         self.__reqDN = None 
    61         self.__setFilePath(filePath) 
     56        self._reqDN = None 
     57        self._setFilePath(filePath) 
    6258 
    6359        # Set-up CA directory 
     
    6561 
    6662             
    67     def __setFilePath(self, filePath): 
     63    def _setFilePath(self, filePath): 
    6864        """Set property method 
    6965        @type filePath: string 
     
    7167        if filePath is not None: 
    7268            if not isinstance(filePath, basestring): 
    73                 raise OpenSSLConfigError, \ 
    74                     "Input OpenSSL config file path must be a string" 
     69                raise OpenSSLConfigError("Input OpenSSL config file path must " 
     70                                         "be a string") 
    7571 
    7672            try: 
    7773                if not os.access(filePath, os.R_OK): 
    78                     raise OpenSSLConfigError, "not found or no read access" 
     74                    raise OpenSSLConfigError("Not found or no read access") 
    7975                                          
    8076            except Exception, e: 
    81                 raise OpenSSLConfigError, \ 
    82                     "OpenSSL config file path is not valid: \"%s\": %s" % \ 
    83                     (filePath, str(e)) 
    84                      
    85         self.__filePath = filePath 
    86                      
    87  
    88  
    89     def __getFilePath(self): 
     77                raise OpenSSLConfigError("OpenSSL config file path is not " 
     78                                         'valid: "%s": %s' % (filePath, e)) 
     79                     
     80        self._filePath = filePath 
     81                     
     82 
     83 
     84    def _getFilePath(self): 
    9085        """Get property method 
    9186        @rtype: string 
     
    9388        return self.__filePath 
    9489 
    95     filePath = property(fget=__getFilePath, 
    96                         fset=__setFilePath, 
     90    filePath = property(fget=_getFilePath, 
     91                        fset=_setFilePath, 
    9792                        doc="file path for configuration file") 
    9893 
     
    106101            homeDir = os.environ.get('HOME') 
    107102            if homeDir: 
    108                 self.__caDir = os.path.join(os.environ['HOME'],  
    109                                             self.__gridCASubDir) 
     103                self._caDir=os.path.join(os.environ['HOME'],self._gridCASubDir) 
    110104            else: 
    111                 self.__caDir = None 
     105                self._caDir = None 
    112106        else: 
    113107            if not isinstance(caDir, basestring): 
    114                 raise OpenSSLConfigError, \ 
    115                     "Input OpenSSL CA directory path must be a string" 
     108                raise OpenSSLConfigError("Input OpenSSL CA directory path " 
     109                                         "must be a string") 
    116110 
    117111            try: 
    118112                if not os.access(caDir, os.R_OK): 
    119                     raise OpenSSLConfigError, "not found or no read access" 
     113                    raise OpenSSLConfigError("Not found or no read access") 
    120114                                          
    121115            except Exception, e: 
    122                 raise OpenSSLConfigError, \ 
    123                     "OpenSSL CA directory path is not valid: \"%s\": %s" % \ 
    124                     (filePath, str(e)) 
    125                      
    126         self.__caDir = caDir 
    127                      
    128  
    129     def __getCADir(self): 
     116                raise OpenSSLConfigError("OpenSSL CA directory path is not " 
     117                                         'valid: "%s": %s' % (filePath, e)) 
     118                     
     119        self._caDir = caDir 
     120                     
     121 
     122    def _getCADir(self): 
    130123        """Get property method 
    131124        @rtype caDir: string 
    132125        @return caDir: directory path for CA configuration files""" 
    133         return self.__caDir 
    134  
    135     caDir = property(fget=__getCADir, 
     126        return self._caDir 
     127 
     128    caDir = property(fget=_getCADir, 
    136129                     fset=setCADir, 
    137130                     doc="directory path for CA configuration files") 
    138131 
    139132 
    140     def __getReqDN(self): 
     133    def _getReqDN(self): 
    141134        """Get property method 
    142135        @rtype reqDN: dict 
    143136        @return reqDN: Distinguished Name for certificate request""" 
    144         return self.__reqDN 
    145  
    146  
    147     def __setReqDN(self, reqDN): 
     137        return self._reqDN 
     138 
     139 
     140    def _setReqDN(self, reqDN): 
    148141        """Set property method 
    149142        @type reqDN: dict 
    150143        @param reqDN: Distinguished Name for certificate request""" 
    151144        if not isinstance(reqDN, dict): 
    152             raise AttributeError, "Distinguished Name must be dict type" 
     145            raise AttributeError("Distinguished Name must be dict type") 
    153146         
    154147        invalidKw = [k for k in dict \ 
    155                      if k not in self.__class__._certReqDNParamName] 
     148                     if k not in OpenSSLConfig._certReqDNParamName] 
    156149        if invalidKw: 
    157             raise AttributeError, \ 
    158     "Invalid certificate request keyword(s): %s.  Valid keywords are: %s" % \ 
    159     (', '.join(invalidKw), ', '.join(self.__class__._certReqDNParamName)) 
    160  
    161         self.__reqDN = reqDN 
    162  
    163  
    164     reqDN = property(fget=__getReqDN, 
    165                      fset=__setReqDN, 
     150            raise AttributeError("Invalid certificate request keyword(s): " 
     151                                 "%s.  Valid keywords are: %s" %  
     152                                 (', '.join(invalidKw),  
     153                                 ', '.join(OpenSSLConfig._certReqDNParamName))) 
     154 
     155        self._reqDN = reqDN 
     156 
     157 
     158    reqDN = property(fget=_getReqDN, 
     159                     fset=_setReqDN, 
    166160                     doc="Distinguished Name for certificate request") 
    167161     
     
    178172        Reformat _sections to """ 
    179173        try: 
    180             file = open(self.__filePath) 
     174            file = open(self._filePathfilePath) 
    181175            fileTxt = file.read() 
    182176        except Exception, e: 
    183             raise OpenSSLConfigError, \ 
    184                 "Error reading OpenSSL config file \"%s\": %s" % \ 
    185                                                     (self.__filePath, str(e)) 
     177            raise OpenSSLConfigError('Reading OpenSSL config file "%s": %s' %  
     178                                                    (self._filePath, e)) 
    186179 
    187180        idx = re.search('\[\s*\w*\s*\]', fileTxt).span()[0] 
     
    207200        @param optVal: option value""" 
    208201        filtVal = optVal.split('#')[0].strip() 
    209         if self.__caDir: 
     202        if self._caDir: 
    210203            # Replace $dir with CA directory path 
    211             return self.__class__._caDirPat.sub(self.__caDir, filtVal) 
     204            return OpenSSLConfig._caDirPat.sub(self._caDir, filtVal) 
    212205        else: 
    213206            # Leave $dir in place as no CA directory has been set 
     
    219212        given read() has to seek ahead to the first actual section to avoid 
    220213        parsing errors""" 
    221         raise NotImplementedError, "Use read method instead" 
    222         self._parseReqDN() 
     214        raise NotImplementedError("Use read method instead") 
    223215 
    224216 
     
    229221        # Nb. Match over line boundaries 
    230222        try: 
    231             self.__reqDN = \ 
    232             { 
     223            self._reqDN = { 
    233224                'O': self.get('req_distinguished_name',  
    234225                              '0.organizationName_default'), 
     
    237228            } 
    238229        except Exception, e: 
    239             raise OpenSSLConfigError, \ 
    240             'Error setting content of Distinguished Name from file "%s": %s'%\ 
    241                                                     (self.__filePath, str(e)) 
     230            raise OpenSSLConfigError('Setting content of Distinguished Name ' 
     231                                     'from file "%s": %s' %(self._filePath,e)) 
  • TI12-security/trunk/python/MyProxyClient/setup.py

    r4639 r4642  
    4141    install_requires =      ['M2Crypto'], 
    4242    license =               __license__, 
     43    test_suite =            'test', 
     44    packages =              find_packages(), 
     45    package_data =          { 
     46        'test': ['*.cfg', '*.conf', '*.crt', '*.key', 'README'] 
     47    }, 
    4348    zip_safe = True 
    4449) 
Note: See TracChangeset for help on using the changeset viewer.