Hallo Community,
ich arbeite Momentan an einem Client-Server Projekt welches über das Internet Daten verschickt, diese möchte ich gerne hybrid verschlüsseln. Der symetrische Part dabei macht mir keine Probleme, mehr die RSA-Verschlüsselung für den symetrischen Key.
Dabei bin ich neben der DLL von peethebee aus dem Jahre 2007 (die man mittlerweile nicht mehr downloaden kann) nur auf diesen Thread gestoßen. Also hab ich mich versucht mit dieser DLL-Datei ein Schlüsselpaar zu generieren, und einen Text mit dem öffentlichen Schlüssel zu verschlüsseln. Jedoch, bin ich mir nicht sicher wie ich den DllCall gestalten soll, villeicht kann mir da einer von euch weiterhelfen der sich schon mehr damit beschäftigt hat.
Funktionsheader zu RSA_encrpt:
unsigned long __stdcall RSA_encrypt(unsigned char *source, unsigned long source_size,
unsigned char *result, unsigned long result_size,
unsigned char *pubkey_content, unsigned long pubkey_content_size)
Wie muss ich den DllCall Aufruf gestalten, das die Funktions ordnungsgemäß funktioniert, und kann ich das ganze dann so auslesen wie ich es hier versucht habe? (Also per GetData aus dem DllStruct heraus?)
Vielen Dank für die Hilfe
#include <Array.au3>
Dim $sStringPlain = "hallotest123", $sStringEncoded = ""
Dim $hRSA_Dll = DllOpen("rsa.dll")
Dim $aRet = DllCall($hRSA_Dll, "ULONG", "RSA_generate_keys", "str", "test.privkey", "str", "test.pubkey", "ULONG*", "2048", "ULONG*", "2048")
Dim $sPrivateKey = $aRet[1]
Dim $sPublicKey = $aRet[2]
ConsoleWrite($sPrivateKey & @CRLF & @CRLF & @CRLF)
ConsoleWrite($sPublicKey & @CRLF & @CRLF & @CRLF)
Dim $tagStruct = "struct;str source; ulong source_size;str result;ulong result_size;str pubkey_content;ulong pubkey_content_size;endstruct"
Dim $tStruct = DllStructCreate($tagStruct)
DllStructSetData($tStruct, "source", $sStringPlain)
DllStructSetData($tStruct, "pubkey_content", $sPublicKey)
$aRet = DllCall($hRSA_Dll, "ULONG", "RSA_encrypt", _
"str", DllStructGetPtr($tStruct,"source"), "ULONG", StringLen(DllStructGetData($tStruct,"source")), _
"str", DllStructGetPtr($tStruct,"result"), "ULONG", 1000, _
"str", DllStructGetPtr($tStruct,"pubkey_content"), "ULONG", StringLen(DllStructGetData($tStruct,"pubkey_content")))
ConsoleWrite("@error = " & @error &@CRLF)
_ArrayDisplay($aRet)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]$sStringEncoded = DllStructGetData($tStruct, "result")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]ConsoleWrite(">" & $sStringEncoded & "< " &@CRLF)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit];~ unsigned long __stdcall RSA_encrypt(unsigned char *source, unsigned long source_size,
;~ unsigned char *result, unsigned long result_size,
;~ unsigned char *pubkey_content, unsigned long pubkey_content_size)