我使用的是一个定制的Python,它使用的是封装pq算法的liboqs-openssl。我使用提供的dilithium2算法生成证书,并希望与Python和服务器创建一个简单的SSL连接。
简化客户端:
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.load_verify_locations('.../quantum-safe-chat/pqca/ca/dilithium2_CA.crt')
_socket = socket(AF_INET, SOCK_STREAM, 0)
_socket = context.wrap_socket(_socket, server_hostname=hostname)
_socket.connect(address)简化服务器:
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.load_cert_chain(certfile='.../quantum-safe-chat/pqca/server/dilithium2_srv.crt',
keyfile='.../quantum-safe-chat/pqca/server/dilithium2_srv.key')
server = socket(AF_INET, SOCK_STREAM, 0)
server.bind(self.__address)
server = context.wrap_socket(self.__server, server_side=True)现在,当我试图运行服务器和客户机时,我得到了客户机错误ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1129)和服务器错误ssl.SSLError: [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:1129)。
我已经试着打印出两端都有context.get_ciphers()的密码,它们是相同的。此外,我还尝试用context.set_ciphers('ECDHE-RSA-AES256-GCM-SHA384')手动将其设置为两端相同的密码,这只会给出相同的结果。
有谁知道这个问题可能是什么吗?
发布于 2021-05-10 10:48:12
我不熟悉libqs-openssl,但是
这意味着没有能够支持您的证书可用的身份验证方法的密码。换句话说:没有密码,因此也没有共享密码。
https://security.stackexchange.com/questions/249216
复制相似问题