2016-04-06 3 views
0

У меня есть RSB blob (я должен использовать blob! И я в среде C++ (no .net)) с ключевыми данными rsa, которые мне нужно использовать. В C# я хотел бы сделать:Convert C# RSACryptoServiceProvider to 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

Спасибо за ваши ответы, но они arent, что мне нужно. Сделать ситуацию более ясной. Его школьный проект, ограниченный по времени, означает, что я не могу «тратить время» на то, чтобы писать свою собственную книгу. В проекте есть клиент чата, который отправляет этот rsa blob, и я должен использовать его в C++, несмотря ни на что. Для этого существует функция arent? –

+0

@ FinnL.Terrat, да, вот что я говорю –