StartAESCipher IV Bug im ECB Modus

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Christian+
Beiträge: 213
Registriert: 13.07.2008 10:05
Computerausstattung: Windows 8.1 Pro
AMD Phenom II X4 955 @ 3.2 GHz
4GB RAM
NVIDIA GeForce GTX 660

StartAESCipher IV Bug im ECB Modus

Beitrag von Christian+ »

Ich bekomme eine Lesefehler an Adresse 0 bei folgendem Code (getestet mit PB x64 und x68 in Version 5.21 und 5.22):

Code: Alles auswählen

;*InitialisierungsVektor = Der InitialisierungsVektor ist ein zufälliger Datenblock, welcher für das Initialisieren der Verschlüsselung verwendet wird, um ein Knacken beim Dekodieren zu verhindern (wird nur bei Verwendung des #PB_Cipher_CBC Modus benötigt). Seine Größe hängt vom Parameter 'Bits' ab: 16 Bytes für 128 Bit-Verschlüsselung, 24 Bytes für 196 Bit und 32 Bytes für 256 Bit. 

;StartAESCipher(#Cipher, *Schlüssel, Bits, *InitialisierungsVektor, Modus)
StartAESCipher(#PB_Any, ?key, 128, 0, #PB_Cipher_Decode | #PB_Cipher_ECB)

DataSection  
  key:
  Data.b $06 , $a9 , $21 , $40 , $36 , $b8 , $a2 , $5b , $51 , $2e , $03 , $d6 , $36 , $12 , $01 , $07  
EndDataSection
Meiner Meinung nach sollte das nicht so sein, da es ja wenig Sinn macht einen InitialisierungsVektor zu übergeben wenn dieser nicht gebraucht wird.
Ist jetzt nicht so tragisch ich übergebe als IV einfach einen leeren Speicherbereich dann funktioniert alles aber die schönste Lösung ist das auch nicht.

Falls das jemand reproduzieren kann werde ich das mal auch noch ins englische Forum stellen.

Edit:
Zum Vergleich AESEncoder verhält sich in dem Fall korrekt:

Code: Alles auswählen

*Eingabe = AllocateMemory(16)
*Ausgabe = AllocateMemory(16)
AESEncoder(*Eingabe, *Ausgabe, 16, ?key, 128, 0, #PB_Cipher_ECB)

DataSection  
  key:
  Data.b $06 , $a9 , $21 , $40 , $36 , $b8 , $a2 , $5b , $51 , $2e , $03 , $d6 , $36 , $12 , $01 , $07  
EndDataSection
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660