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
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) {
/* 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)
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;