2016-04-06 14 views
0

Ich habe einen RSA-Blob (ich muss den Blob verwenden! Und ich bin in einer Windows-C++ (no. NET) Umgebung) mit RSA Schlüsseldaten, die ich verwenden muss. In C# würde ich tun:Convert C# RSACryptoServiceProvider in C++

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

Aber wie genau, was in C++ zu tun? Ich habe keine Ahnung. Mein aktueller C++ Situation ist:

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.rsacrptoserviceprovider.importcspblob(v=vs.100).aspx?cs-save-lang=1&cs-lang=cpp# code-snippet-1 –

+2

@Mike Dinescu: Es ist das OP, das auf die Dokumentation der Methode zeigt, die er gerade benutzt ;-) – VolkerK

+0

Ha !! Das ist so lustig :) –

Antwort

0

Sie sollten nicht rolling your own crypto sein. Verwenden Sie eine Bibliothek. Wenn Sie andererseits den Anbieter als Lernaufgabe konvertieren möchten, sollten Sie RSA algorithm description finden und Schritt für Schritt implementieren. Sie sollten jedoch gewarnt werden, dass dies mühsam und fehleranfällig ist. Selbst wenn Sie dies tun, wird Ihnen dennoch geraten, keine eigene Implementierung zu verwenden.

+0

Danke für deine Antworten, aber sie sind nicht das, was ich brauche. Um die Situation klarer zu machen. Es ist ein Schulprojekt, das zeitlich begrenzt ist, was bedeutet, dass ich noch keine Zeit mit dem Schreiben meiner eigenen Verschlüsselungsbibliothek verschwenden kann. In dem Projekt haben wir einen Chat Client, der diesen rsa Blob sendet und ich muss ihn in C++ verwenden, egal was passiert. Also gibt es Funktionen dafür? –

+0

@ FinnL.Terrat, ja, das sage ich –