def __load_cert(self, cert_dir):
"""???/??? ?? ? ?? ???
:param cert_dir: ???/??? ?? ??
:return: X509 ???
"""
logging.debug("Cert/Key loading...")
cert_file = join(cert_dir, "cert.pem")
pri_file = join(cert_dir, "key.pem")
f = open(cert_file, "rb")
cert_bytes = f.read()
f.close()
cert = x509.load_pem_x509_certificate(cert_bytes, default_backend())
f = open(pri_file, "rb")
pri_bytes = f.read()
f.close()
try:
pri = serialization.load_pem_private_key(pri_bytes, self.__PASSWD, default_backend())
except ValueError:
logging.debug("Invalid Password(%s)", cert_dir)
return None
data = b"test"
signature = pri.sign(data, ec.ECDSA(hashes.SHA256()))
try:
pub_key = cert.public_key()
result = pub_key.verify(signature, data, ec.ECDSA(hashes.SHA256()))
except InvalidSignature:
logging.debug("sign test fail")
result = False
if result:
return cert
else:
logging.error("result is False ")
return None
评论列表
文章目录