Mercurial > dovecot > core-2.3
changeset 26355:ec5b58066054
lib-dcrypt: Add key id and usage fields to dcrypt keys
Simplifies next change
author | Aki Tuomi <aki.tuomi@open-xchange.com> |
---|---|
date | Fri, 23 Aug 2019 11:51:21 +0300 |
parents | 3968f9c449ca |
children | 8f8906188bb4 |
files | src/lib-dcrypt/dcrypt-openssl.c src/lib-dcrypt/dcrypt.h |
diffstat | 2 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-dcrypt/dcrypt-openssl.c Fri Aug 23 12:27:23 2019 +0300 +++ b/src/lib-dcrypt/dcrypt-openssl.c Fri Aug 23 11:51:21 2019 +0300 @@ -131,11 +131,15 @@ struct dcrypt_public_key { EVP_PKEY *key; unsigned int ref; + enum dcrypt_key_usage usage; + char *key_id; }; struct dcrypt_private_key { EVP_PKEY *key; unsigned int ref; + enum dcrypt_key_usage usage; + char *key_id; }; static bool @@ -1476,7 +1480,9 @@ EC_KEY_free(eckey); /* make sure digest matches */ buffer_t *dgst = t_buffer_create(32); - struct dcrypt_public_key tmp = { key, 0 }; + struct dcrypt_public_key tmp; + i_zero(&tmp); + tmp.key = key; dcrypt_openssl_public_key_id_old(&tmp, dgst, NULL); if (strcmp(binary_to_hex(dgst->data, dgst->used), input[len-1]) != 0) { @@ -1517,7 +1523,9 @@ /* make sure digest matches */ buffer_t *dgst = t_buffer_create(32); - struct dcrypt_public_key tmpkey = {pkey, 0}; + struct dcrypt_public_key tmpkey; + i_zero(&tmpkey); + tmpkey.key = pkey; dcrypt_openssl_public_key_id(&tmpkey, "sha256", dgst, NULL); if (strcmp(binary_to_hex(dgst->data, dgst->used), input[len-1]) != 0) { if (error_r != NULL)
--- a/src/lib-dcrypt/dcrypt.h Fri Aug 23 12:27:23 2019 +0300 +++ b/src/lib-dcrypt/dcrypt.h Fri Aug 23 11:51:21 2019 +0300 @@ -50,6 +50,12 @@ DCRYPT_KEY_KIND_PRIVATE }; +enum dcrypt_key_usage { + DCRYPT_KEY_USAGE_NONE, + DCRYPT_KEY_USAGE_ENCRYPT, + DCRYPT_KEY_USAGE_SIGN, +}; + struct dcrypt_settings { /* OpenSSL engine to use */ const char *crypto_device;