JQuickBase Release Packages:
a) packages including encryption are named "JQB-A", packages without encryption "JQB-B".
b) following the type marker comes the package version, like "0.0.4" or "0-1-0".
b) Snapshot editions are marked with a "-SNx" appendix to the name, where "x" is replaced by a serial number relative to the preceding expression. Snapshots are tryout versions from development with a probability of unsolved problems or reduced functionality.
JQB-A-0-9-0 (30-03-2022) - good implementation for fixed and variable record lengths (3 data models), scalable index implementation w/ B+ tree index files. Record-data streaming technology. Allows strong data encryption using Twofish algorithm and state-of.-the-art encryption technology. Tested and stable.
JQB-B-0-9-0 (30-03-2022) - good implementation for fixed and variable record lengths (3 data models), scalable index implementation w/ B+ tree index files. Database features allow to keep data from direct sight on file level. Record-data streaming technology. No strong encryption but quite well tested and stable.
JQB-A-0.0.4 (28-05-2005) - good Standard file implementation, without Flexible files, includes big-key Twofish encryption on a weaker basis (ECB modus) without protection against brute force attacks and crypt-analysis. This encryption technology must be regarded unsafe for multiple reasons!
Limit | TINY | STANDARD | LARGE |
---|---|---|---|
cell size | 65535 | 2.1 GB | 2.1 GB |
record size | 65535 | 4.2 GB | 9.2 EB |
entries | 65535 | 4.2 G | 1.0 T |
id storage bits (unsigned) | 16 | 32 | 40 |
length storage bits (unsigned) | 16 | 32 | 63 |
With file features some properties of database or index files can be activated, additional to what is made available at the programmatic interfaces. File features have to be set up when a file is created, they cannot be recalled or added at a later time. The following is a complete list of available features to be set (refer to a tutorial on how to implement them).
Feature | Range | Modification |
---|---|---|
AUTO_REORG | DB, IX | internal reference lists are reconstructed automatically during the first open on a file instance (per session); this optimises usage of reclaimed data-cells. This feature is firmly set for index files. |
ERASER | DB, IX | released data contents of a record actually disappear from the data file; this affects over-writing or deletion of records. |
FILE_CRC | DB, IX | a CRC of all records and the user header is calculated on every close and open operation. An exception is thrown if a bad CRC is found during file open. This feature is useful to detect data damage, but should be applied only in conjunction with a save-and-restore strategy for affected files. This makes a file inaccessible in case of an error. |
FLAT_RECORD | DB | the size of any record in the file is always the same |
MODEL_LARGE | DB | activates data-model LARGE |
MODEL_STANDARD | DB, IX | activates data-model STANDARD (actually this need not be set but can be used for documentary reasons) |
MODEL_TINY | DB | activates data-model TINY |
READ_PROTECT | DB, IX | the file is protected against simple read attempts on low level file access. |
RECORD_CRC | DB | a CRC value (32-bit) is calculated and stored for each data record; the value can be programmatically tested. |
UNIQUE_KEYS | IX | attribute of an index-file, that all keys of its entries are unique in the index (supports to depict a transformation instead of a relation into the reference values) |
VARIANT | DB | record sizes are possible beyond the (atomic) data-cell size; a chain of data-cells constitutes the content for a single record. |
JQuickbase series Alpha (JQB-A) offers file encryption as an option (which is realised by setting a file feature). If encryption is chosen, key material has to be supplied as extra arguments for the creation and opening of databases or indexes. The minimum length of a user access key is 4 bytes and there is no restriction on the quality of the supplied material.
JQuickbase uses the Twofish algorithm of Bruce Schneier et al. for the basic, ECB, cipher mode and a modified CTR cipher-mode for encryption. The database environment of repeated writings of records is secured against the possibility of crypt-analysis through our special cipher-mode. The encryption key used for the algorithm is always 32 bytes of length and random generated by JQB software when the file is created. This encryption key does not change during the life-time of a database file. The user access key is a different asset and can be changed at any time. The files allow to setup security loops in the key verification process in order to provide a protection against brute force password guessing attacks.