【问题标题】:OpenSSL (cpp) and .net RSA key exchangeOpenSSL (cpp) 和 .net RSA 密钥交换
【发布时间】:2011-07-26 13:06:51
【问题描述】:

我有一个关于 OpenSSL 和 dotnet 加密的问题。我想将 OpenSSL 生成的 RSA 公钥和私钥转换为 dotnet 密钥。该密钥随后用于进一步的操作。出于安全原因,使用外部密钥库或密钥文件不是解决方案。我已经包含了我必须使用的旧 cpp 代码的一小部分,并标记了两行我认为可以导出密钥的地方。 RSA 密钥结构来自外部 PKI 服务器。事实上,PKI 服务器在发送消息时会为选定的用户提供一组公钥。每个用户的私钥始终存储在本地。有人能帮帮我吗?

非常感谢您的帮助

沃尔克

############## start code ##############

typedef struct _KEY_POINT 
{
            unsigned short size;
            unsigned short key_size;
            unsigned long crc;
            unsigned char key_data[1];
} KEY_POINT, * PKEY_POINT;

unsigned char * encryptRSA( const unsigned char * pSrcBuffer,
                        unsigned long * pBufferSize,
                        const PKEY_POINT pPublicKey)
{
RSA * pRsa = NULL;
// -----snip ----------------
            unsigned char * pPublic_data = pPublicKey->key_data;
            pRsa = d2i_RSAPublicKey(&pRsa, (const unsigned char **)&pPublic_data, pPublicKey->key_size);
// Here chance to export *pRsa as .net public keye e.g. as string (base 64 encoded)
// -----snip ----------------
}

unsigned char * decryptRSA( const unsigned char * pSrcBuffer,
                        unsigned long * pBufferSize,
                        const PKEY_POINT pPrivateKey)
{
RSA * pRsa = NULL;
// -----snip ----------------
            unsigned char * pPublic_data = pPublicKey->key_data;
            pRsa = d2i_RSAPrivateKey(&pRsa, (const unsigned char **)&pPublic_data, pPublicKey->key_size);
// Here chance to export *pRsa as .net private key e.g. as string (base 64 encoded)
// -----snip ----------------
}

############## end code ##############

【问题讨论】:

    标签: .net c++ openssl key rsa


    【解决方案1】:

    由于您拥有 DER 格式的数据(我假设这是因为您使用 d2i_RSAXXX),也许您可​​以使用 base64 函数 http://www.ioncannon.net/programming/34/howto-base64-encode-with-cc-and-openssl/

    这也假设 .Net 可以读取 DER 格式的公钥和私钥。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多