DCPcrypt2 - Stringverschlüsselung - Delphi in C++ übersetzen
-
Hallo!
Ich habe DCP crypt v2 beta3 von http://www.cityinthesky.co.uk/cryptography.html installiert und habe es geschafft, ein Delphi-Beispiel zu MD5 in C++ umzusetzen. Aber ich kann das Delphi-Beispiel zur Stringverschlüsselung nicht übersetzen.So sieht es aus:
procedure TForm1.btnEncryptClick(Sender: TObject); var i: integer; Cipher: TDCP_rc4; KeyStr: string; begin KeyStr:= ''; if InputQuery('Passphrase','Enter passphrase',KeyStr) then // get the passphrase begin Cipher:= TDCP_rc4.Create(Self); Cipher.InitStr(KeyStr,TDCP_sha1); // initialize the cipher with a hash of the passphrase for i:= 0 to Memo1.Lines.Count-1 do // encrypt the contents of the memo Memo1.Lines[i]:= Cipher.EncryptString(Memo1.Lines[i]); Cipher.Burn; Cipher.Free; end; end;Wenn ich "Cipher.InitStr(KeyStr,TDCP_sha1);" in "Cipher->InitStr(KeyStr,TDCP_sha1)" übersetze, kriege ich folgende Fehlermeldung:
E2108 Ungültige Verwendung von typedef ‘TDCP_sha1’
Ihr Quelltext verwendet ein typedef-Symbol, wo eine Variable in einem Ausdruck stehen sollte.Meine Schlussfolgerung aus der Hilfe zum Fehler: 'TDCP_sha1' durch eine Variable, zum Beispiel "hash" vom Typ TDCP_sha1 ersetzen. Doch dann kommt die nächste Fehlermeldung:
E2034 Konvertierung von 'TDCP_sha1 *' nach 'TMetaClass *' nicht möglich.
Leider komme ich hier nicht weiter. Hat jemand einen Lösungsvorschlag?
Danke,
Thomas Wieczorek

-
Hallo,
Mach einfach mal
Cipher.InitStr(KeyStr,__classid(TDCP_sha1));Irgendwie hatten wir das Thema letztens erst.
[edit]Ach ja, das war hier http://www.c-plusplus.net/forum/viewtopic-var-t-is-119771.html
Ciao
-
Danke, Braunstein. Es klappt

-
Könntest du die Sourcen bereitstellen? Ich nutze C++Builder 2007
Danke Thomas
-
Hallo,
Hast du auf der Seite von DCPcrypt mal nachgeschaut? Da gibt es hier
http://www.cityinthesky.co.uk/files/dcpcrypt2.zip
was zum runterladen. Das kannst du auch mit dem BCB2007 compilieren.
-
Ne leider kann ich es nicht kompilieren. Er findet die System.obj nicht.
-
Es lässt sich mit Sicherheit kompilieren. Da müssen veilleicht noch ein paar kleine Ändererungen rein. Am besten geht sowas immer wenn man ein neues leeres Projekt erstellt und dann die notwendigen dateien zufügt. Ich weiß jetzt nicht mehr genau was ich da sonst noch alles gemacht habe. Wenn du willst kann ich dir meine Variante mal schicken.
-
Ja, habe neues Projekt erzeugt und nun funzt es.
Danke