【发布时间】:2021-04-06 14:27:36
【问题描述】:
我正在编写一个使用 SSL 套接字的小程序。客户端将值发送到服务器,当服务器获得值时,它会检查客户端的公钥以确保他应该发送一些东西。因此,起初服务器会像这样获取所有公钥:
cert = f.read()
crtObj = crypto.load_certificate(crypto.FILETYPE_PEM, cert)
pubKeyObject = crtObj.get_pubkey()
pubKeyString = crypto.dump_publickey(crypto.FILETYPE_PEM,pubKeyObject)
使用这种方法,公钥是:
B'----- BEGIN PUBLIC KEY ----- \ nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7GIzek5JgfFzFCGwnx7X \ ncE4QULV / 9uyoGgd9HbHYyYcItEcSPU39ORXCrNQGxh09k4oFPBYntjD2gIORF8V4 \ n6EAC10bFaT18OuM1F / 37V + K / + + BuvCDTqcS9Y0CRalwPFVYB yttvZ8fnvO2l / TxF的\ nsLmZh0yY / ajaHxey / ppUQycGy4xA8XD6VlWFM7 + I0t / 19rrLN9iMFSym / TgYpBbn \ nxyZel8rMW/ACS09nSprEu1BuI+myhhej+cuy3wU8byRTwANpqHxsx5cTwp642TVx\nBKbuO8GHAzEKcrFZnrKcsXr9emWV5ouYiVzehOT4Pd3I2W8qSy6x/Ovv/iS3ojT4\ndQIDQAB\n-----结束公钥-----
当服务器想像这样从套接字连接中获取它时:
test1 = writer.get_extra_info('ssl_object')
der =test1.getpeercert(binary_form=True)
test = test1.getpeercert()
cert = x509.Certificate.load(der)
pubkey= cert.public_key.unwrap()
print(pem.armor("PUBLIC KEY", pubkey.contents).decode("ASCII"))
打印的公钥是:
-----开始公钥----- AoIBAQDsYjN6TkmB8XMUIbCfHtdwThBQtX/27KgaB30dsdjJhwi0RxI9Tf05FcKs 1AbGHT2TigU8Fie2MPaAg5EXxXjoQALXRsVpPXw64zUX/fu/4r/4G68INOpxL1jQ JFqXA8VVgH7K229nx+e87aX9PEWwuZmHTJj9qNofF7L+mlRDJwbLjEDxcPpWVYUz v4jS3/X2uss32IwVLKb9OBikFufHJl6Xysxb8AJLT2dKmsS7UG4j6bKGF6P5y7Lf BTxvJFPAA2mofGzHlxPCnrjZNXEEpu47wYcDMQpysVmespyxev16ZZXmi5iJXN6E 5Pg93cjZbypLLrH86++/+JLeiNPh1AgMBAAE= -----结束公钥-----
所以我不知道这是否是格式问题,或者它是否真的不是我得到的同一个公钥......但它应该是。 很抱歉发了这么长的帖子,非常感谢您的阅读。
【问题讨论】:
标签: python ssl openssl cryptography rsa