000
15.11.2003, 17:57 Uhr
AreaScout
|
Hi Leute
Bin neu hier und möchte euch auch gleich alle begrüssen
Ich habe ein kleines RSA beispiel programmiert unter VB, um aber den RSA teil nutzen zu können muss ich die Rechenarbeit schon von VC++ erledigen lassen, also gleich mal die OpenSSL sourcecode in ein neues VC++ dll project reingestöpselt und läuft gut, aber nur bei der Debug version, die Release version hängt sich immer auf und ich weis echt nicht mehr warum !!???
Also hier mal meine Funktion in VC++:
C++: |
unsigned char * __stdcall RSAEncrypt(unsigned char *Data,unsigned char *key_e,unsigned char *key_n) {
BIGNUM *e1 = 0; BIGNUM *n1 = 0; BIGNUM *emm = 0; BIGNUM *r = BN_new(); BN_CTX *temp = BN_CTX_new(); BN_hex2bn(&emm,Data); BN_hex2bn(&e1,key_e); BN_hex2bn(&n1,key_n); BN_mod_exp(r, emm, e1, n1, temp); ar = BN_bn2hex(r); BN_free(emm); emm = 0; BN_free(e1); e1 = 0; BN_free(n1); n1 = 0; BN_free(r); BN_new(); BN_CTX_free(temp); BN_CTX_new();
return ar; }
|
Die funtion arbeitet einwandfrei der fehler muss irrgendwo bei der übergabe von ar zum stackanfang sein. Die def datei sieht so aus:
LIBRARY "RSA_DLL"
EXPORTS RSAEncrypt
Um den einstiegspunkt zu deklarieren
In VB sieht der call so aus :
Visual Basic: |
Private Declare Function RSAEncrypt Lib "RSA_DLL.DLL" (ByVal Data As String, ByVal e As String, ByVal n As String) As String
|
und der aufruf so:
Result = RSAEncrypt(Mess2, e, n)
Kann mir hier bitte wer helfen oder eine vermutung anbringen wo den hier der fehler liegen könnte ?
Ich benutze VC++ 6.0 und VB 6.0
Gruß
Und hier noch mal in VB der DLL aufruf
--edit: Pablo. [ cpp ] tags gesetzt -- Dieser Post wurde am 15.11.2003 um 18:46 Uhr von Pablo Yanez Trujillo editiert. |