xof: Add helper to determine MGF1 XOF type from hash algorithm

This commit is contained in:
Tobias Brunner 2017-09-25 18:06:40 +02:00
parent 3ce8b0556a
commit 883e7fcd65
2 changed files with 38 additions and 0 deletions

View File

@ -1,4 +1,5 @@
/*
* Copyright (C) 2017 Tobias Brunner
* Copyright (C) 2016 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil
*
@ -25,3 +26,31 @@ ENUM(ext_out_function_names, XOF_UNDEFINED, XOF_CHACHA20,
"XOF_CHACHA20"
);
/*
* Described in header
*/
ext_out_function_t xof_mgf1_from_hash_algorithm(hash_algorithm_t alg)
{
switch (alg)
{
case HASH_SHA1:
return XOF_MGF1_SHA1;
case HASH_SHA256:
return XOF_MGF1_SHA256;
case HASH_SHA512:
return XOF_MGF1_SHA512;
case HASH_SHA224:
case HASH_SHA384:
case HASH_IDENTITY:
case HASH_UNKNOWN:
case HASH_MD2:
case HASH_MD4:
case HASH_MD5:
case HASH_SHA3_224:
case HASH_SHA3_256:
case HASH_SHA3_384:
case HASH_SHA3_512:
break;
}
return XOF_UNDEFINED;
}

View File

@ -1,4 +1,5 @@
/*
* Copyright (C) 2017 Tobias Brunner
* Copyright (C) 2016 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil
*
@ -111,4 +112,12 @@ struct xof_t {
void (*destroy)(xof_t *this);
};
/**
* Determine an MGF1 XOF type for the given hash algorithm.
*
* @param alg hash algorithm to map
* @return MGF1 XOF type if available, XOF_UNDEFINED otherwise
*/
ext_out_function_t xof_mgf1_from_hash_algorithm(hash_algorithm_t alg);
#endif /** XOF_H_ @}*/