我需要通过线路接收 RSA 公钥并使用它来加密数据以发送回服务器。我无法控制密钥服务器发送的格式,必须使用当前的实现。
我已经在python中实现了协议,
key_bin = get_server_key() # "30818902818100e8ecd6f1..."
key = Crypto.PublicKey.RSA.importKey(key_bin)
padded_data = add_rsa_padding(data)
encrypted_data = key.encrypt(padded_data, 0)[0]
send_data(encrypted_data)
现在我在将它移植到 C++ 库时遇到了麻烦,最好使用 OpenSSL,但我找不到以非 PEM 格式加载公钥的方法,并且在接收时将其动态转换为 PEM 似乎是一个糟糕的主意。我可能错过了一些 API,有人可以帮忙吗?
如果您已经拥有 DER 编码的公钥,您可以d2i_RSAPublicKey()
将其转换为 OpenSSL 内部结构RSA
,然后可以与各种其他 OpenSSL API 一起使用来执行您的加密
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句