If I try to Fill and/or Free an allocated memory block:
[ERROR] The specified '*MemoryID' is not valid.
Code: Select all
;encrypt/decrypt a 512 char string with AES
EnableExplicit
#VecChars = 8 ;16 bytes
#KeyChars = 16 ;32 bytes
#KeyBits = 256
#StrChars = 512
Define sStr.s = "udaqF_RYk@VHe{jVtv?{b#jNeHEzhFKAqjnPG=W$Pr~=Y=NKj=c_@[@yf@)AF]_p}MRDbUcg<u>Qn#W#d>AcpJfNmb@pBp~VDzn]P@[e<hK?]{=_CHygyjen>h+TxFsGyDCcEMdTXHvgsq)]kE_ush$ffzYPDLcA?)~bHWhH{yczjqPcQ~~E(vn=w}D%rqa#@sAJkHFW>P{hu[>J(fe%>jEag%kSKNzu)QQGZYXDV<MUnCks<h_U>Dcsh#HM<gPuXDWqw%)@LfE+Eh?UgEvL{~wy<zgC=kQ[nWjdcBr[cMmhk$cFNT%yU]jAEtwGw$)kpCF(W[]ySLyR[MaD(aCatLhqT%xavNfan%%XWaN%F#Qn~@vBf=FDc=v#ghXB]YBZ[SLHLNtpp+z[an]q@#(wf+tA(<YsfV+~FUfP[adkeM>>~pt#}FC(~CM<vDrmZhJJ>vH<NXS_eG#=stHRSnEys<YE<KGs~FT[YPNJF)byzbM}DsgBGASMNAF@jhV?)Vqx"
Define sVec.s = "JEVR{meE"
Define sKey.s = ")U=nG~cWZSYLYuuq"
Define iBuff.i = StringByteLength(sStr, #PB_Unicode) + SizeOf(character)
Define *Key = AllocateMemory(StringByteLength(sKey, #PB_Unicode) + SizeOf(character))
Define *Vec = AllocateMemory(StringByteLength(sVec, #PB_Unicode) + SizeOf(character))
Define *CyphdStr = AllocateMemory(iBuff)
Define *DeCypStr = AllocateMemory(iBuff)
Debug " "
Debug " MemorySize(*Key)-->" + Str(MemorySize(*Key)) + "<--"
Debug " MemorySize(*Vec)-->" + Str(MemorySize(*Vec)) + "<--"
Debug "MemorySize(*CyphdStr)-->" + Str(MemorySize(*CyphdStr)) + "<--"
Debug "MemorySize(*DeCypStr)-->" + Str(MemorySize(*DeCypStr)) + "<--"
Debug " "
PokeS(*DeCypStr, sStr, #StrChars, #PB_Unicode)
PokeS(*Key, sKey, #KeyChars, #PB_Unicode)
PokeS(*Vec, sVec, #VecChars, #PB_Unicode)
If AESEncoder(*DeCypStr, *CyphdStr, iBuff, *Key, #KeyBits, *Vec, #PB_Cipher_CBC)
Debug Len(PeekS(*CyphdStr, #StrChars, #PB_Unicode))
Debug PeekS(*CyphdStr, #StrChars, #PB_Unicode)
AESDecoder(*CyphdStr, *DeCypStr, iBuff, *Key, #KeyBits, *Vec, #PB_Cipher_CBC)
Debug Len(PeekS(*DeCypStr, #StrChars, #PB_Unicode))
Debug PeekS(*DeCypStr, #StrChars, #PB_Unicode)
Debug sStr
;If(*CyphdStr) : FillMemory(*CyphdStr, MemorySize(*CyphdStr)) : EndIf
;If(*DeCypStr) : FillMemory(*DeCypStr, MemorySize(*DeCypStr)) : EndIf
;If(*Key) : FillMemory(*Key, MemorySize(*Key)) : EndIf
;If(*Vec) : FillMemory(*Vec, MemorySize(*Vec)) : EndIf
;If(*CyphdStr) : FreeMemory(*CyphdStr) : EndIf
;If(*DeCypStr) : FreeMemory(*DeCypStr) : EndIf
;If(*Key) : FreeMemory(*Key) : EndIf
;If(*Vec) : FreeMemory(*Vec) : EndIf
Else
MessageRequester("Attention", "AES Encode Failed")
EndIf
End
Also, perhaps related, why, after displaying the encrypted string, does the Debug Output Window change font??