使用OpenSSL使用DER-DER-编码RSA公钥



我需要通过电线接收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,有人可以帮忙吗?

如果您已经已经编码了公共密钥,则可以使用d2i_RSAPublicKey()将其转换为OpenSSL内部结构RSA,然后可以与其他各种OpenSSL API一起使用,以执行您的加密

最新更新