packfile_password
Sets the global I/O encryption password.
Description
Sets the encryption password to be used for all read/write operations
on files opened in future using Allegro's packfile functions (whether
they are compressed or not), including all the save, load and config
routines. Files written with an encryption password cannot be read
unless the same password is selected, so be careful: if you forget the
key, nobody can make your data come back again! Pass NULL or an empty
string to return to the normal, non-encrypted mode. If you are using
this function to prevent people getting access to your datafiles, be
careful not to store an obvious copy of the password in your executable:
if there are any strings like "I'm the password for the datafile", it
would be fairly easy to get access to your data :-)
Note #1: when writing a packfile, you can change the password to whatever
you want after opening the file, without affecting the write operation.
On the contrary, when writing a sub-chunk of a packfile, you must make
sure that the password that was active at the time the sub-chunk was
opened is still active before closing the sub-chunk. This is guaranteed
to be true if you didn't call the packfile_password() routine in the
meantime. Read operations, either on packfiles or sub-chunks, have no
such restriction.
Note #2: as explained above, the password is used for all read/write
operations on files, including for several functions of the library that
operate on files without explicitly using packfiles (e.g. load_bitmap()).
The unencrypted mode is mandatory in order for those functions to work.
Therefore remember to call packfile_password(NULL) before using them if
you previously changed the password. As a rule of thumb, always call
packfile_password(NULL) when you are done with operations on packfiles.
The only exception to this is custom packfiles created with
pack_fopen_vtable().
Related Discussions
The following threads each have code containing this keyword:
Note: You can click on the numbers to jump directly to the posts that reference this page.
Related Projects
The following projects include source code containing this keyword: