Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   TLockbox , stream fehler (https://www.delphipraxis.net/192683-tlockbox-stream-fehler.html)

bernhard_LA 10. Mai 2017 13:48


TLockbox , stream fehler
 
Liste der Anhänge anzeigen (Anzahl: 2)
wir bekommen beim ver /entschlüsseln mit LOCKBOX unter DELPHI 10.1 einen "random" Zugriffsfehler RANGE CHECK ERROR , log des fehlers mit MADSHI siehe screen dump
CodeZeile : ThreeBytes[ByteIdx] := ThreeBytes[ByteIdx] + (Bits6 shl (8 - BitIdx));[/I


Delphi-Quellcode:
procedure CustomBase64_to_stream( const Base64: TBytes; Destin: TStream;
  const InverseTransform: TInverseBaseTransform);
var
  P, j, i: integer;
  Ch: Byte;
  Bits6: byte;
  ThreeBytes: packed array[ 0..2 ] of byte;
  ByteIdx, BitIdx: integer;
//  ShrN: integer;
  Addend: byte;
begin
{$IFDEF DEBUG}
  {$RANGECHECKS OFF}
{$ENDIF}

// Assume Destin is already at the desired postion and size.
for P := 0 to (Length( Base64) div 4) - 1 do
  begin
  for i := 0 to 2 do ThreeBytes[i] := 0;
  ByteIdx := 0;
  BitIdx := 0;
  for j := 1 to 4 do
    begin
    Ch := Base64[ P * 4 + j - 1];
    if Ch = Ord('=') then break;
    Bits6 := InverseTransform[ Ch];
//    ShrN := BitIdx - 2;
    if BitIdx > 2 then
        Addend := Bits6 shr (BitIdx - 2)
      else if BitIdx = 2 then
        Addend := Bits6
      else
        Addend := Bits6 shl (2 - BitIdx);
    ThreeBytes[ ByteIdx ] := ThreeBytes[ ByteIdx ] + Addend;
    Inc( BitIdx, 6);
    if BitIdx >= 8 then
      begin
      Dec( BitIdx, 8);
      Inc( ByteIdx);
      if BitIdx > 0 then
        ThreeBytes[ByteIdx] := ThreeBytes[ByteIdx] + (Bits6 shl (8 - BitIdx));
      end
    end;
  Destin.WriteBuffer( ThreeBytes, ByteIdx)
  end
  {$IFDEF DEBUG}
  {$RANGECHECKS ON}
{$ENDIF}

end;

hoika 10. Mai 2017 15:27

AW: TLockbox , stream fehler
 
Hallo,
welche Version von LockBox und welche Delphi hattet Ihr vorher?

bernhard_LA 10. Mai 2017 22:16

AW: TLockbox , stream fehler
 
wir verwenden DELPHI 10.1 und haben Lockbox 3.5.1 via GetIT Package Manager eingespielt

Lockbox Verschlüsselung lief auf meinem PC gut eine Woche ohne Probleme, dann kam am Montag zum ersten mal dieser Fehler. Dienstag war das Problem verschwunden, heute bin ich wieder arbeitsunfähig, seit Mittag kann ich unsere Software nicht weiterentwickeln, da die Lizenz abfrage mit dem Range Check Error zum Programm Abbruch führt.

bernhard_LA 24. Mai 2017 21:34

AW: TLockbox , stream fehler
 
keine eine idee ?

gammatester 24. Mai 2017 21:54

AW: TLockbox , stream fehler
 
Bist Du ganz sicher, daß an der betreffenden Stelle RangeCheck wirklich off ist? Versuch mal ein unbedingtes
Delphi-Quellcode:
{$RANGECHECKS OFF}
statt
Delphi-Quellcode:
{$IFDEF DEBUG}
  {$RANGECHECKS OFF}
{$ENDIF}


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz