                 -------------------------------------
                   HIP 2.0 - source code information
                 -------------------------------------


Algorithm overview
------------------

I intended to write an overview of the program flow and algorithms used,
to make understanding how it works easier, but I am lazy. Tell me if you
want it.


Source files
------------

Here is a very brief description of each source file used in HIP.

*** General-purpose

errors.e   - Error constants and messages, bug handling
fileutil.e - Misc file utility routines
constant.e - Constants used in several parts of HIP


*** Encryption

truerand.e - Random number generator; collects entropy from other files
sha1.e     - Secure Hash Algorithm
encrypt.e  - Key initialization and algorithm identification


Files for working with the encryption algorithms:

blowfish.e - The Blowfish encryption algorithm
rijndael.e - The Rijndael encryption algorithm
enc_algs.e - Wrapper for the encryption algorithms above
stream.e   - Data stream encryption/decryption in CFB mode


*** Hiding/retrieving

scatter.e  - Hiding/retrieving the data in the appropriate picture bytes
rand.e     - Pseudo-random number generator used by scatter.e


*** Hidden file header

main.e     - Writing/reading the header, initializing hiding/retrieving
crc32.e    - Checksum algorithm


*** Bitmaps

pal.e      - Palette matching and sorting
pictures.e - Writing/reading the hidden data in bitmap images

File formats:
formats.e  - Wrapper for working with several graphic formats
bmp.e      - Writing/reading BMP files


*** User Interface

messages.e - Constants for all the messages and text in HIP
m_port.e - messages.e, translated into Portuguese

sle.e - Single-line edit routine used by hip.ex
hip.ex - The main program for the DOS/Linux version of HIP

winhip.exw - The main program for the Windows version of HIP
xpms.ew - Pictures for the buttons in the Windows program

win32lib.ew - Library for Windows programming - version 0.55.1, with
              some subtle modifications (look for the text "davitf")
tk_maths.e - used by win32lib.ew
tk_mem.e - used by win32lib.ew
tk_misc.e - used by win32lib.ew
w32keys.e - used by win32lib.ew