1
我有關於OpenSSL和dotnet加密的問題。我想將由OpenSSL生成的RSA公鑰和私鑰轉換爲dotnet。這個鍵然後用於進一步的操作。出於安全原因,外部密鑰庫或密鑰文件的使用不是解決方案。我已經包含了我必須使用的舊cpp代碼的一小部分,並且標記了兩行,我認爲可以導出這些密鑰。 RSA密鑰結構來自外部PKI服務器。實際上,PKI服務器在發送消息時爲選定的用戶提供了一系列公鑰。每個用戶的私鑰始終存儲在本地。有人能幫助我嗎?OpenSSL(cpp)和.net RSA密鑰交換
非常感謝您的幫助
沃爾克
############## 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 ##############