From: Timo Sirainen Date: Sun, 19 Jun 2016 18:21:56 +0000 (+0300) Subject: lib-dcrypt: dcrypt_key_type_public/private() can no longer fail. X-Git-Tag: 2.2.25.rc1~71 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0e8ca25fa462d251fd5cc6bd53a90b06353b2009;p=thirdparty%2Fdovecot%2Fcore.git lib-dcrypt: dcrypt_key_type_public/private() can no longer fail. Removed unnecessary failure handling. --- diff --git a/src/lib-dcrypt/dcrypt-openssl.c b/src/lib-dcrypt/dcrypt-openssl.c index d67d916cc8..81dcd64516 100644 --- a/src/lib-dcrypt/dcrypt-openssl.c +++ b/src/lib-dcrypt/dcrypt-openssl.c @@ -1855,25 +1855,23 @@ bool dcrypt_openssl_name2oid(const char *name, buffer_t *oid, const char **error } static -bool dcrypt_openssl_private_key_type(struct dcrypt_private_key *key, enum dcrypt_key_type *key_type) +enum dcrypt_key_type dcrypt_openssl_private_key_type(struct dcrypt_private_key *key) { EVP_PKEY *priv = (EVP_PKEY*)key; - if (priv == NULL) return FALSE; - if (EVP_PKEY_base_id(priv) == EVP_PKEY_RSA) *key_type = DCRYPT_KEY_RSA; - else if (EVP_PKEY_base_id(priv) == EVP_PKEY_EC) *key_type = DCRYPT_KEY_EC; + i_assert(priv != NULL); + if (EVP_PKEY_base_id(priv) == EVP_PKEY_RSA) return DCRYPT_KEY_RSA; + else if (EVP_PKEY_base_id(priv) == EVP_PKEY_EC) return DCRYPT_KEY_EC; else i_unreached(); - return FALSE; } static -bool dcrypt_openssl_public_key_type(struct dcrypt_public_key *key, enum dcrypt_key_type *key_type) +enum dcrypt_key_type dcrypt_openssl_public_key_type(struct dcrypt_public_key *key) { EVP_PKEY *pub = (EVP_PKEY*)key; - if (pub == NULL) return FALSE; - if (EVP_PKEY_base_id(pub) == EVP_PKEY_RSA) *key_type = DCRYPT_KEY_RSA; - else if (EVP_PKEY_base_id(pub) == EVP_PKEY_EC) *key_type = DCRYPT_KEY_EC; + i_assert(pub != NULL); + if (EVP_PKEY_base_id(pub) == EVP_PKEY_RSA) return DCRYPT_KEY_RSA; + else if (EVP_PKEY_base_id(pub) == EVP_PKEY_EC) return DCRYPT_KEY_EC; else i_unreached(); - return FALSE; } /** this is the v1 old legacy way of doing key id's **/ diff --git a/src/lib-dcrypt/dcrypt-private.h b/src/lib-dcrypt/dcrypt-private.h index 06aa47809c..5e4a60d14c 100644 --- a/src/lib-dcrypt/dcrypt-private.h +++ b/src/lib-dcrypt/dcrypt-private.h @@ -90,8 +90,8 @@ struct dcrypt_vfs { const char *(*oid2name)(const unsigned char *oid, size_t oid_len, const char **error_r); bool (*name2oid)(const char *name, buffer_t *oid, const char **error_r); - bool (*private_key_type)(struct dcrypt_private_key *key, enum dcrypt_key_type *key_type); - bool (*public_key_type)(struct dcrypt_public_key *key, enum dcrypt_key_type *key_type); + enum dcrypt_key_type (*private_key_type)(struct dcrypt_private_key *key); + enum dcrypt_key_type (*public_key_type)(struct dcrypt_public_key *key); bool (*public_key_id)(struct dcrypt_public_key *key, const char *algorithm, buffer_t *result, const char **error_r); bool (*public_key_id_old)(struct dcrypt_public_key *key, buffer_t *result, const char **error_r); bool (*private_key_id)(struct dcrypt_private_key *key, const char *algorithm, buffer_t *result, const char **error_r); diff --git a/src/lib-dcrypt/dcrypt.c b/src/lib-dcrypt/dcrypt.c index 1801ae8479..a6845ad4e4 100644 --- a/src/lib-dcrypt/dcrypt.c +++ b/src/lib-dcrypt/dcrypt.c @@ -230,13 +230,13 @@ bool dcrypt_key_string_get_info(const char *key_data, enum dcrypt_key_format *fo encryption_key_hash_r, key_hash_r, error_r); } -bool dcrypt_key_type_private(struct dcrypt_private_key *key, enum dcrypt_key_type *type) +enum dcrypt_key_type dcrypt_key_type_private(struct dcrypt_private_key *key) { - return dcrypt_vfs->private_key_type(key, type); + return dcrypt_vfs->private_key_type(key); } -bool dcrypt_key_type_public(struct dcrypt_public_key *key, enum dcrypt_key_type *type) +enum dcrypt_key_type dcrypt_key_type_public(struct dcrypt_public_key *key) { - return dcrypt_vfs->public_key_type(key, type); + return dcrypt_vfs->public_key_type(key); } bool dcrypt_key_id_public(struct dcrypt_public_key *key, const char *algorithm, buffer_t *result, const char **error_r) { diff --git a/src/lib-dcrypt/dcrypt.h b/src/lib-dcrypt/dcrypt.h index 89e6027dee..f6d3e44ed6 100644 --- a/src/lib-dcrypt/dcrypt.h +++ b/src/lib-dcrypt/dcrypt.h @@ -189,8 +189,8 @@ void dcrypt_keypair_free(struct dcrypt_keypair *keypair); void dcrypt_key_free_public(struct dcrypt_public_key **key); void dcrypt_key_free_private(struct dcrypt_private_key **key); -bool dcrypt_key_type_private(struct dcrypt_private_key *key, enum dcrypt_key_type *type); -bool dcrypt_key_type_public(struct dcrypt_public_key *key, enum dcrypt_key_type *type); +enum dcrypt_key_type dcrypt_key_type_private(struct dcrypt_private_key *key); +enum dcrypt_key_type dcrypt_key_type_public(struct dcrypt_public_key *key); bool dcrypt_key_id_public(struct dcrypt_public_key *key, const char *algorithm, buffer_t *result, const char **error_r); /* return digest of key */ bool dcrypt_key_id_public_old(struct dcrypt_public_key *key, buffer_t *result, const char **error_r); /* return SHA1 sum of key */ bool dcrypt_key_id_private(struct dcrypt_private_key *key, const char *algorithm, buffer_t *result, const char **error_r); /* return digest of key */ diff --git a/src/lib-dcrypt/ostream-encrypt.c b/src/lib-dcrypt/ostream-encrypt.c index 70e69d3fb7..0569253a0c 100644 --- a/src/lib-dcrypt/ostream-encrypt.c +++ b/src/lib-dcrypt/ostream-encrypt.c @@ -258,7 +258,7 @@ int o_stream_encrypt_key_for_pubkey_v2(struct encrypt_ostream *stream, const cha encrypted_key = buffer_create_dynamic(pool_datastack_create(), 256); temp_key = buffer_create_dynamic(pool_datastack_create(), 48); - dcrypt_key_type_public(pubkey, &ktype); + ktype = dcrypt_key_type_public(pubkey); if (ktype == DCRYPT_KEY_RSA) { /* encrypt key as R (as we don't need DH with RSA)*/