@property<EOL><INDENT>def self_signed(self):<DEDENT>
if self._self_signed is None:<EOL><INDENT>self._self_signed = False<EOL>if self.asn1.self_signed in set(['<STR_LIT:yes>', '<STR_LIT>']):<EOL><INDENT>signature_algo = self.asn1['<STR_LIT>'].signature_algo<EOL>hash_algo = self.asn1['<STR_LIT>'].hash_algo<EOL>if signature_algo == '<STR_LIT>':<EOL><INDENT>verify_func = rsa_pkcs1v15_verify<EOL><DEDENT>elif signature_algo == '<STR_LIT>':<EOL><INDENT>verify_func = dsa_verify<EOL><DEDENT>elif signature_algo == '<STR_LIT>':<EOL><INDENT>verify_func = ecdsa_verify<EOL><DEDENT>else:<EOL><INDENT>raise OSError(pretty_message(<EOL>'''<STR_LIT>''',<EOL>signature_algo<EOL>))<EOL><DEDENT>try:<EOL><INDENT>verify_func(<EOL>self,<EOL>self.asn1['<STR_LIT>'].native,<EOL>self.asn1['<STR_LIT>'].dump(),<EOL>hash_algo<EOL>)<EOL>self._self_signed = True<EOL><DEDENT>except (SignatureError):<EOL><INDENT>pass<EOL><DEDENT><DEDENT><DEDENT>return self._self_signed<EOL>
:return:
    A boolean - if the certificate is self-signed