(self, other)
return h == myh
True if 'other' issued 'self', i.e.:
          - self.issuer == other.subject
          - self is signed by other
True if 'other' issued 'self', i.e.:
          - self.issuer == other.subject
          - self is signed by other
True if other issued self i . e . : - self . issuer == other . subject - self is signed by other
def isIssuerCert(self, other):
        """
        True if 'other' issued 'self', i.e.:
          - self.issuer == other.subject
          - self is signed by other
        """
        # XXX should be done on raw values, instead of their textual repr
        if self.issuer != other.subject:
            return False

        # Sanity check regarding modulus length and the
        # signature length
        keyLen = (other.modulusLen + 7)/8
        if keyLen != self.sigLen:
            return False

        unenc = other.encrypt(self.sig) # public key encryption, i.e. decrypt

        # XXX Check block type (00 or 01 and type of padding)
        unenc = unenc[1:]
        if not '\x00' in unenc:
            return False
        pos = unenc.index('\x00')
        unenc = unenc[pos+1:]

        found = None
        for k in _hashFuncParams.keys():
            if self.sigAlg.startswith(k):
                found = k
                break
        if not found:
            return False
        hlen, hfunc, digestInfo =  _hashFuncParams[k]
        
        if len(unenc) != (hlen+len(digestInfo)):
            return False

        if not unenc.startswith(digestInfo):
            return False

        h = unenc[-hlen:]
        myh = hfunc(self.tbsCertificate)

        return h == myh
def isIssuerCert ( self , other ) : # XXX should be done on raw values, instead of their textual repr if self . issuer != other . subject : return False # Sanity check regarding modulus length and the # signature length keyLen = ( other . modulusLen + 7 ) / 8 if keyLen != self . sigLen : return False unenc = other . encrypt ( self . sig ) # public key encryption, i.e. decrypt # XXX Check block type (00 or 01 and type of padding) unenc = unenc [ 1 : ] if not '\x00' in unenc : return False pos = unenc . index ( '\x00' ) unenc = unenc [ pos + 1 : ] found = None for k in _hashFuncParams . keys ( ) : if self . sigAlg . startswith ( k ) : found = k break if not found : return False hlen , hfunc , digestInfo = _hashFuncParams [ k ] if len ( unenc ) != ( hlen + len ( digestInfo ) ) : return False if not unenc . startswith ( digestInfo ) : return False h = unenc [ - hlen : ] myh = hfunc ( self . tbsCertificate ) return h == myh