Code: Alles auswählen
; Sollte im Ascii-Modus kompiliert werden
String$ = "Hello this is a test for AES"
*CipheredString = AllocateMemory(Len(String$)+1) ; Platz für den null-terminierten String
*DecipheredString = AllocateMemory(Len(String$)+1) ; mit seiner abschließenden Null (ASCII-Modus)
If AESEncoder(@String$, *CipheredString, Len(String$), ?Key, 128, ?InitializationVector)
Debug "Ciphered: "+PeekS(*CipheredString)
AESDecoder(*CipheredString, *DecipheredString, Len(String$), ?Key, 128, ?InitializationVector)
Debug "Deciphered: "+PeekS(*DecipheredString)
EndIf
DataSection
Key:
Data.b $06, $a9, $21, $40, $36, $b8, $a1, $5b, $51, $2e, $03, $d5, $34, $12, $00, $06
InitializationVector:
Data.b $3d, $af, $ba, $42, $9d, $9e, $b4, $30, $b4, $22, $da, $80, $2c, $9f, $ac, $41
EndDataSection
"Platz für den null-terminierten String mit seiner abschließenden Null (ASCII-Modus)"
Allerdings funktioniert dieses Beispiel auch wenn ich die größe der beiden Speicher nicht um 1 erhöhe.
und StringByteLength(Chr(0)) gibt ja auch 0 zurück. Daher ist es doch eigentlich absolut unnötig oder übersehe ich da etwas?