It is important to note that instructions on encrypted or encrypted files (see the Methods 2 tab) use pre-programmed user libraries. Encoding is done without keys and is therefore not very secure unlike encryption that requires a key. Libraries must be modules and must also follow a precise syntax. Example of a matrix encoding library generated by Dev-Module :
MatrixEncoded::ME_WriteString(FileID.i, P_String.s)MatrixEncoded::ME_WriteByte(FileID.i, P_Value.b)MatrixEncoded::ME_WriteAsciiCharacter(FileID.i, P_Value.a)MatrixEncoded::ME_WriteWord(FileID.i, P_Value.w)MatrixEncoded::ME_WriteCharacter(FileID.i, P_Value.c)MatrixEncoded::ME_WriteUnicodeCharacter(FileID.i, P_Value.u)MatrixEncoded::ME_WriteLong(FileID.i, P_Value.l)MatrixEncoded::ME_WriteQuad(FileID.i, P_Value.q)MatrixEncoded::ME_WriteInteger(FileID.i, P_Value.i)MatrixEncoded::ME_WriteFloat(FileID.i, P_Value.f)MatrixEncoded::ME_WriteDouble(FileID.i, P_Value.d)
Resultat.s = MatrixEncoded::ME_ReadString(FileID.i)Resultat.b = MatrixEncoded::ME_ReadByte(FileID.i)Resultat.a = MatrixEncoded::ME_ReadAsciiCharacter(FileID.i)Resultat.w = MatrixEncoded::ME_ReadWord(FileID.i)Resultat.c = MatrixEncoded::ME_ReadCharacter(FileID.i)Resultat.u = MatrixEncoded::ME_ReadUnicodeCharacter(FileID.i)Resultat.l = MatrixEncoded::ME_ReadLong(FileID.i)Resultat.q = MatrixEncoded::ME_ReadQuad(FileID.i)Resultat.i = MatrixEncoded::ME_ReadInteger(FileID.i)Resultat.f = MatrixEncoded::ME_ReadFloat(FileID.i)Resultat.d = MatrixEncoded::ME_ReadDouble(FileID.i)
As shown in the example above, there is a command for each of the standard types of PureBasic for writing and reading preceded by the prefix ME_. Let's see an example of XOR encryption with a key :
XOREncoded::XORE_WriteString(FileID.i, P_Key.s, P_String.s)XOREncoded::XORE_WriteByte(FileID.i, P_Key.s, P_Value.b)XOREncoded::XORE_WriteAsciiCharacter(FileID.i, P_Key.s, P_Value.a)XOREncoded::XORE_WriteWord(FileID.i, P_Key.s, P_Value.w)XOREncoded::XORE_WriteCharacter(FileID.i, P_Key.s, P_Value.c)XOREncoded::XORE_WriteUnicodeCharacter(FileID.i, P_Key.s, P_Value.u)XOREncoded::XORE_WriteLong(FileID.i, P_Key.s, P_Value.l)XOREncoded::XORE_WriteQuad(FileID.i, P_Key.s, P_Value.q)XOREncoded::XORE_WriteInteger(FileID.i, P_Key.s, P_Value.i)XOREncoded::XORE_WriteFloat(FileID.i, P_Key.s, P_Value.f)XOREncoded::XORE_WriteDouble(FileID.i, P_Key.s, P_Value.d)
Resultat.s = XOREncoded::XORE_ReadString(FileID.i, P_Key.s)Resultat.b = XOREncoded::XORE_ReadByte(FileID.i, P_Key.s)Resultat.a = XOREncoded::XORE_ReadAsciiCharacter(FileID.i, P_Key.s)Resultat.w = XOREncoded::XORE_ReadWord(FileID.i, P_Key.s)Resultat.c = XOREncoded::XORE_ReadCharacter(FileID.i, P_Key.s)Resultat.u = XOREncoded::XORE_ReadUnicodeCharacter(FileID.i, P_Key.s)Resultat.l = XOREncoded::XORE_ReadLong(FileID.i, P_Key.s)Resultat.q = XOREncoded::XORE_ReadQuad(FileID.i, P_Key.s)Resultat.i = XOREncoded::XORE_ReadInteger(FileID.i, P_Key.s)Resultat.f = XOREncoded::XORE_ReadFloat(FileID.i, P_Key.s)Resultat.d = XOREncoded::XORE_ReadDouble(FileID.i, P_Key.s)
As the example above shows, there is a command for each of the standard PureBasic types for writing and reading preceded by the XORE _ prefix. The order of the FileID and P_Key parameters must be as shown above.