Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Buffer ver-/entschlüsseln mit RCx

  Alt 5. Jul 2007, 10:12
Das sieht gut aus und müsste funktionieren.

Die Vermutung liegt nahe das deine TCP/IP Komponente die Daten die übertragen werden nicht als binäre Daten akzeptiert. Benutze mal

Delphi-Quellcode:
procedure TMainForm.ClientEncryptData(Sender: TObject; PA: TProtocolAdapter; var Buffer; const Size: Integer);
var
  ARCx: TRCxContext;
begin
  RCxInit(ARCx,'<Passwort>');
  RCxEncode(ARCx,Buffer,Buffer,Size);
  RCxDone(ARCx);

  ShowMessage( TFormat_HEX.Encode(Buffer, Size) );
end;

procedure TMainForm.ClientDecryptData(Sender: TObject; PA: TProtocolAdapter; var Buffer; const Size: Integer);
var
  ARCx: TRCxContext;
begin
  ShowMessage( TFormat_HEX.Encode(Buffer, Size) );

  RCxInit(ARCx,'<Passwort>');
  RCxDecode(ARCx,Buffer,Buffer,Size);
  RCxDone(ARCx);
end;
Um die Daten im Buffer nach der Ver-schlüsselung mit denen VOR der Ent-Schlüsselung zu vergleichen. Wir testen also ob deine TCP/IP Komponenten die Daten NICHT verändert.

Wird nämlich der Buffer intern durch die Komponete als zb. LongString verwaltet dann kann eine #0 im Buffer diesen Datenstring verkürzen. Oder irgend ein anderer Formatierer konvertiert die daten so das alle x Zeichen ein Zeilenumbruch eingefügt wird, auch die verändert die Daten. Solche Datenveräderungen führen dazu das die Entschlüsselung fehlschlägt und ist bisher die häufigste Ursache für Supportanfragen an mich gewesen.

Gruß Hagen
  Mit Zitat antworten Zitat