Gilles Peskine
e8199f574c
Dynamic key store: implementation
...
When MBEDTLS_PSA_KEY_STORE_DYNAMIC is enabled, key slots are now organized in
multiple slices. The slices are allocated on demand, which allows the key
store to grow. The size of slices grows exponentially, which allows reaching
a large number of slots with a small (static) number of slices without too
much overhead.
Maintain a linked list of free slots in each slice. This way, allocating a
slot takes O(1) time unless a slice needs to be allocated.
In this commit, slices are only ever freed when deinitializing the key
store. This should be improved in the future to free empty slices.
To avoid growing the persistent key cache without control, the persistent
key cache has a fixed size (reusing MBEDTLS_PSA_KEY_SLOT_COUNT to avoid
creating yet another option).
When MBEDTLS_PSA_KEY_STORE_DYNAMIC is disabled. no semantic change and
minimal changes to the code.
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-08-09 13:52:56 +02:00
..
2024-03-27 17:36:15 +00:00
2024-01-15 11:45:01 +00:00
2024-02-13 13:41:16 +00:00
2023-11-30 11:01:50 +00:00
2023-12-19 13:11:47 +00:00
2023-11-23 17:43:00 +00:00
2024-02-06 15:00:58 +00:00
2024-01-30 16:28:09 +01:00
2024-02-16 15:26:12 +01:00
2024-01-24 16:26:35 +01:00
2023-11-03 12:21:36 +00:00
2023-11-21 17:09:46 +00:00
2024-03-11 10:39:57 +00:00
2024-03-11 10:03:05 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-03-11 15:28:48 +00:00
2023-11-10 12:14:53 +01:00
2024-03-22 14:46:04 -04:00
2023-11-03 12:21:36 +00:00
2023-11-23 10:31:26 +08:00
2024-01-08 08:07:53 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-01-02 17:20:58 +01:00
2023-11-23 10:31:26 +08:00
2024-05-13 09:27:57 -05:00
2024-03-19 22:24:40 +00:00
2024-03-29 13:59:36 +00:00
2024-07-17 12:21:21 +02:00
2023-11-27 11:28:30 +00:00
2023-11-03 12:21:36 +00:00
2023-12-01 13:53:45 +00:00
2024-07-17 12:21:21 +02:00
2024-01-17 11:06:31 +00:00
2024-01-18 15:30:46 +01:00
2024-01-18 15:30:46 +01:00
2023-11-03 12:21:36 +00:00
2023-11-21 17:09:46 +00:00
2024-02-29 13:31:34 +00:00
2023-11-03 12:21:36 +00:00
2023-11-21 17:09:46 +00:00
2024-01-29 12:00:15 +01:00
2024-02-07 23:26:27 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-02-28 14:18:28 +01:00
2024-05-02 14:27:44 +05:30
2023-11-03 12:21:36 +00:00
2024-03-22 14:46:04 -04:00
2024-03-13 09:55:33 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-03-22 14:46:04 -04:00
2023-11-21 17:09:46 +00:00
2024-03-22 14:46:04 -04:00
2024-03-27 17:36:15 +00:00
2023-11-03 12:21:36 +00:00
2024-01-02 13:26:04 +01:00
2023-11-03 12:21:36 +00:00
2024-05-02 18:18:45 +02:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2023-11-03 12:24:58 +00:00
2024-03-22 14:46:04 -04:00
2024-03-22 14:46:04 -04:00
2024-02-08 14:26:29 +00:00
2023-11-23 10:31:26 +08:00
2023-11-03 12:21:36 +00:00
2024-03-22 14:46:04 -04:00
2024-03-11 09:48:40 +01:00
2024-03-11 09:48:40 +01:00
2024-03-20 15:42:55 +01:00
2023-12-20 12:59:57 +02:00
2024-05-14 12:06:20 +02:00
2023-12-21 16:39:04 +01:00
2024-01-19 09:07:35 +01:00
2023-12-21 16:39:04 +01:00
2024-03-11 09:48:40 +01:00
2024-02-28 13:19:42 +01:00
2024-03-20 17:10:35 +01:00
2024-07-11 17:31:22 +03:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-02-28 01:30:24 +01:00
2023-11-03 12:21:36 +00:00
2024-06-17 12:24:02 +01:00
2023-11-03 12:21:36 +00:00
2024-02-26 16:57:30 +01:00
2023-11-03 12:21:36 +00:00
2024-08-09 13:52:56 +02:00
2023-11-03 12:21:36 +00:00
2024-03-05 09:59:24 +00:00
2023-11-03 12:21:36 +00:00
2024-02-28 01:30:24 +01:00
2024-01-26 09:35:18 +01:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-12-11 17:58:56 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-02-28 06:48:49 +01:00
2024-08-06 13:12:06 +02:00
2024-08-06 13:13:05 +02:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-08-09 13:52:56 +02:00
2024-08-09 13:52:56 +02:00
2024-02-28 01:30:24 +01:00
2024-03-05 14:06:02 +00:00
2024-08-09 13:52:56 +02:00
2023-11-21 17:09:46 +00:00
2024-02-29 16:14:29 +01:00
2024-02-29 16:14:29 +01:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2023-12-20 12:59:57 +02:00
2024-02-05 08:48:39 +01:00
2024-03-11 11:34:58 +01:00
2023-11-03 12:21:36 +00:00
2024-03-12 13:14:40 +00:00
2024-05-02 14:27:44 +05:30
2024-01-30 15:31:42 +00:00
2023-11-03 12:21:36 +00:00
2024-01-18 15:08:28 +01:00
2024-01-02 13:27:32 +01:00
2024-03-14 15:05:09 +01:00
2023-11-03 12:21:36 +00:00
2024-03-22 14:46:04 -04:00
2024-03-12 17:48:15 +01:00
2024-03-13 16:50:01 +00:00
2024-04-05 14:16:32 +02:00
2024-03-22 14:46:04 -04:00
2024-02-21 09:38:46 +00:00
2024-05-29 20:09:36 +02:00
2024-04-05 14:16:31 +02:00
2024-06-05 11:49:51 +02:00
2023-11-03 12:21:36 +00:00
2024-02-05 15:09:15 +00:00
2023-11-03 12:24:58 +00:00
2024-06-05 11:49:50 +02:00
2024-07-04 14:50:59 +00:00
2024-03-12 15:36:57 +00:00
2023-11-03 12:21:36 +00:00
2023-11-03 12:21:36 +00:00
2024-01-22 15:31:05 +00:00
2024-01-19 09:07:35 +01:00
2024-03-04 02:22:01 +00:00
2024-01-19 09:07:35 +01:00
2024-02-26 13:59:43 +00:00
2024-01-19 09:07:35 +01:00
2024-03-22 14:46:04 -04:00
2024-03-22 14:46:04 -04:00
2024-01-19 09:07:35 +01:00