Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-09-30 | Multi-block object support in keystore. | Rob Austein | |
The main reason for supporting multi-block objects is to allow the PKCS #11 code to attach more attributes than will fit comfortably in a single flash block. This may turn out to be unnecessary once we've fleshed out the attribute storage and retrieval code; if so, we can simplify the code, but this way the keystore won't impose arbitrary (and somewhat inscrutable) size limits on PKCS #11 attributes for large keys. This snapshot passes light testing (PKCS #11 "make test" runs), but the tombstone recovery code in ks_init() is a bit involved, and needs more testing with simulated failures (probably induced under GDB). | |||
2016-09-27 | Fix swapped memmove() arguments in hal_ks_index_replace(). | Rob Austein | |
2016-09-27 | Add hal_ks_index_replace(). | Rob Austein | |
2016-09-16 | Revised ks_flash. Compiles, not yet tested. | Rob Austein | |
2016-09-09 | Portable fix for ks_find() fencepost error. | Rob Austein | |
Binary search of an array is a notorious example of a simple algorithm which is hard to get exactly right. The variant we're using is nice because it automatically computes the correct insertion point when a key doesn't exist, but runs into one of the portability corner cases of signed integer arithemtic in C. Rather than leave a landmine waiting to explode if somebody builds this code on a platform where (-1 >> 1) != -1, we test for the corner case explictly and accept the miniscule performance hit (which will be lost in other noise anyway). | |||
2016-09-09 | Fencepost error in ks_find(). | Rob Austein | |
2016-09-08 | New keystore index internal API. Compiles, not yet integrated or tested. | Rob Austein | |