The BCArchive file consists of three parts: header, key block and data block.
Header of the archive file contains information about size and location of key and data blocks.
Key block is a sequence of encrypted keys stored according to the ASN.1 format. The keys are encrypted by another key, generated from password or by public key according to the settings the user has chosen when he/she created the archive file.
You can add new or remove existing password to the archive. As well you can add public key of some user to the archive file – it means that the user will be able to decrypt the archive with his/her secret key. There is no limitations for number of keys in key block, hence you can add as many passwords/public keys to the archive as you wish.
Data block consists of number of clusters and looks like well known FAT file system. Every cluster is compressed and encrypted with the main archive key and symmetric algorithm you have chosen when created the archive. If you update data inside the archive and some cluster becomes modified, BCArchive does not write it immediately to the archive file. Instead, BCArchive creates hidden subfolder in the same directory where archive file is stored and saves modified cluster as a file in the subfolder. Special compacting function removes old cluster from the archive file and then appends the modified cluster to the archive.
Users can run the compacting function manually by running the Compact -> Compact Now command from the menu in the main BCArchive window. Besides, user can set the Dynamic Compact option. In that case, BCArchive will run compacting automatically. If you are going to make significant modifications in a large archive file, you may turn off the Dynamic Compact option and save computer resources required for dynamic compact of large compressed data.