return TRUE;
}
-/**
- * Described in header.
- */
-bool openssl_hash_chunk(int hash_type, chunk_t data, chunk_t *hash)
-{
- EVP_MD_CTX *ctx;
- bool ret = FALSE;
- const EVP_MD *hasher = EVP_get_digestbynid(hash_type);
- if (!hasher)
- {
- return FALSE;
- }
-
- ctx = EVP_MD_CTX_create();
- if (!ctx)
- {
- goto error;
- }
-
- if (!EVP_DigestInit_ex(ctx, hasher, NULL))
- {
- goto error;
- }
-
- if (!EVP_DigestUpdate(ctx, data.ptr, data.len))
- {
- goto error;
- }
-
- *hash = chunk_alloc(EVP_MD_size(hasher));
- if (!EVP_DigestFinal_ex(ctx, hash->ptr, NULL))
- {
- chunk_free(hash);
- goto error;
- }
-
- ret = TRUE;
-error:
- if (ctx)
- {
- EVP_MD_CTX_destroy(ctx);
- }
- return ret;
-}
-
/**
* Described in header.
*/
*/
bool openssl_fingerprint(EVP_PKEY *key, cred_encoding_type_t type, chunk_t *fp);
-/**
- * Creates a hash of a given type of a chunk of data.
- *
- * Note: this function allocates memory for the hash
- *
- * @param hash_type NID of the hash
- * @param data the chunk of data to hash
- * @param hash chunk that contains the hash
- * @return TRUE on success, FALSE otherwise
- */
-bool openssl_hash_chunk(int hash_type, chunk_t data, chunk_t *hash);
-
/**
* Concatenates two bignums into a chunk, thereby enforcing the length of
* a single BIGNUM, if necessary, by pre-pending it with zeros.