2016-04-06 209 views
0

我有一個RSA blob(我必須使用blob!並且我在windows C++(no .net)環境中)使用我必須使用的rsa密鑰數據。 在C#中我會做:將c#RSACryptoServiceProvider轉換爲C++

var CryptoService = new RSACryptoServiceProvider(1024); 
CryptoService.ImportCspBlob(pCspBlob); 
var Data = CryptoService.Encrypt(Chat, false); 
process(Data.Reverse()); 

但如何做確切的事情在C++?我不知道。 我現在的C++的情況是:

void OnReceivedBlob(unsigned char* BlobArray,size_t BlobSize,char* Chat,size_t ChatSize) 
{ 
    // do rsa encrypt with blob 
    processChat(rsa encrypted); 
} 
+0

https://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.importcspblob(v=vs.100).aspx?cs-save-lang=1&cs-lang=cpp# code-snippet-1 –

+2

@Mike Dinescu:這是OP指向他現在使用的方法的文檔;-) – VolkerK

+0

Ha!這太有趣:) –

回答

0

你不應該rolling your own crypto。使用圖書館。另一方面,如果您想將提供商轉換爲學習練習,則應該找到RSA algorithm description並逐步實施。你應該警告,這是很費力和容易出錯的。所以即使你這樣做,仍然建議你不要使用你自己的實現。

+0

感謝您的回覆,但他們不是我所需要的。爲了使情況更清楚。它是一個有時間限制的學校項目,這意味着我不能「浪費」時間,但還沒有編寫我自己的加密庫。在項目中,我有一個聊天客戶端發送這個rsa blob,我不得不在C++中使用它。所以沒有這個功能? –

+0

@ FinnL.Terrat,是的,這就是我要說的 –