From efc47f47581bb164440b86e9e57382972a32dbe8 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Tue, 27 Feb 2018 18:00:08 +0100 Subject: Add hal_ks_available --- ks.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'ks.c') diff --git a/ks.c b/ks.c index 1598679..f145adc 100644 --- a/ks.c +++ b/ks.c @@ -1010,6 +1010,18 @@ hal_error_t hal_ks_rewrite_der(hal_ks_t *ks, return err; } +hal_error_t hal_ks_available(hal_ks_t *ks, size_t *count) +{ + if (ks == NULL || count == NULL) + return HAL_ERROR_BAD_ARGUMENTS; + + hal_ks_lock(); + *count = ks->size - ks->used; + hal_ks_unlock(); + + return HAL_OK; +} + /* * Local variables: * indent-tabs-mode: nil -- cgit v1.2.3 From a478fe1230efae768c72b8cdb29e2887e4226312 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Tue, 27 Feb 2018 18:04:39 +0100 Subject: Implement hash-based signatures, per draft-mcgrew-hash-sigs-08.txt --- ks.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'ks.c') diff --git a/ks.c b/ks.c index f145adc..c848056 100644 --- a/ks.c +++ b/ks.c @@ -514,6 +514,10 @@ static inline int acceptable_key_type(const hal_key_type_t type) case HAL_KEY_TYPE_EC_PRIVATE: case HAL_KEY_TYPE_RSA_PUBLIC: case HAL_KEY_TYPE_EC_PUBLIC: + case HAL_KEY_TYPE_HASHSIG_PRIVATE: + case HAL_KEY_TYPE_HASHSIG_PUBLIC: + case HAL_KEY_TYPE_HASHSIG_LMS: + case HAL_KEY_TYPE_HASHSIG_LMOTS: return 1; default: return 0; -- cgit v1.2.3