mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-03 00:00:24 -04:00
mgf1: Support of RSA PSS with SHA3 hash
This commit is contained in:
parent
1265d78cac
commit
3b7c49bc31
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2017 Tobias Brunner
|
* Copyright (C) 2017 Tobias Brunner
|
||||||
* Copyright (C) 2016 Andreas Steffen
|
* Copyright (C) 2016-2023 Andreas Steffen
|
||||||
*
|
*
|
||||||
* Copyright (C) secunet Security Networks AG
|
* Copyright (C) secunet Security Networks AG
|
||||||
*
|
*
|
||||||
@ -24,6 +24,10 @@ ENUM(ext_out_function_names, XOF_UNDEFINED, XOF_CHACHA20,
|
|||||||
"XOF_MGF1_SHA256",
|
"XOF_MGF1_SHA256",
|
||||||
"XOF_MGF1_SHA384",
|
"XOF_MGF1_SHA384",
|
||||||
"XOF_MGF1_SHA512",
|
"XOF_MGF1_SHA512",
|
||||||
|
"XOF_MGF1_SHA3_224",
|
||||||
|
"XOF_MGF1_SHA3_256",
|
||||||
|
"XOF_MGF1_SHA3_384",
|
||||||
|
"XOF_MGF1_SHA3_512",
|
||||||
"XOF_SHAKE128",
|
"XOF_SHAKE128",
|
||||||
"XOF_SHAKE256",
|
"XOF_SHAKE256",
|
||||||
"XOF_CHACHA20"
|
"XOF_CHACHA20"
|
||||||
@ -46,15 +50,19 @@ ext_out_function_t xof_mgf1_from_hash_algorithm(hash_algorithm_t alg)
|
|||||||
return XOF_MGF1_SHA384;
|
return XOF_MGF1_SHA384;
|
||||||
case HASH_SHA512:
|
case HASH_SHA512:
|
||||||
return XOF_MGF1_SHA512;
|
return XOF_MGF1_SHA512;
|
||||||
|
case HASH_SHA3_224:
|
||||||
|
return XOF_MGF1_SHA3_224;
|
||||||
|
case HASH_SHA3_256:
|
||||||
|
return XOF_MGF1_SHA3_256;
|
||||||
|
case HASH_SHA3_384:
|
||||||
|
return XOF_MGF1_SHA3_384;
|
||||||
|
case HASH_SHA3_512:
|
||||||
|
return XOF_MGF1_SHA3_384;
|
||||||
case HASH_IDENTITY:
|
case HASH_IDENTITY:
|
||||||
case HASH_UNKNOWN:
|
case HASH_UNKNOWN:
|
||||||
case HASH_MD2:
|
case HASH_MD2:
|
||||||
case HASH_MD4:
|
case HASH_MD4:
|
||||||
case HASH_MD5:
|
case HASH_MD5:
|
||||||
case HASH_SHA3_224:
|
|
||||||
case HASH_SHA3_256:
|
|
||||||
case HASH_SHA3_384:
|
|
||||||
case HASH_SHA3_512:
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return XOF_UNDEFINED;
|
return XOF_UNDEFINED;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2017 Tobias Brunner
|
* Copyright (C) 2017 Tobias Brunner
|
||||||
* Copyright (C) 2016 Andreas Steffen
|
* Copyright (C) 2016-2023 Andreas Steffen
|
||||||
*
|
*
|
||||||
* Copyright (C) secunet Security Networks AG
|
* Copyright (C) secunet Security Networks AG
|
||||||
*
|
*
|
||||||
@ -43,6 +43,14 @@ enum ext_out_function_t {
|
|||||||
XOF_MGF1_SHA384,
|
XOF_MGF1_SHA384,
|
||||||
/** RFC 8017 PKCS#1 */
|
/** RFC 8017 PKCS#1 */
|
||||||
XOF_MGF1_SHA512,
|
XOF_MGF1_SHA512,
|
||||||
|
/** RFC 8017 PKCS#1 */
|
||||||
|
XOF_MGF1_SHA3_224,
|
||||||
|
/** RFC 8017 PKCS#1 */
|
||||||
|
XOF_MGF1_SHA3_256,
|
||||||
|
/** RFC 8017 PKCS#1 */
|
||||||
|
XOF_MGF1_SHA3_384,
|
||||||
|
/** RFC 8017 PKCS#1 */
|
||||||
|
XOF_MGF1_SHA3_512,
|
||||||
/** FIPS 202 */
|
/** FIPS 202 */
|
||||||
XOF_SHAKE_128,
|
XOF_SHAKE_128,
|
||||||
/** FIPS 202 */
|
/** FIPS 202 */
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2008-2009 Martin Willi
|
* Copyright (C) 2008-2009 Martin Willi
|
||||||
|
* Copyright (C) 2023 Andreas Steffen, strongSec GmbH
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the
|
* under the terms of the GNU General Public License as published by the
|
||||||
@ -115,6 +116,8 @@ METHOD(plugin_t, get_features, int,
|
|||||||
PLUGIN_SDEPEND(XOF, XOF_MGF1_SHA1),
|
PLUGIN_SDEPEND(XOF, XOF_MGF1_SHA1),
|
||||||
PLUGIN_SDEPEND(XOF, XOF_MGF1_SHA256),
|
PLUGIN_SDEPEND(XOF, XOF_MGF1_SHA256),
|
||||||
PLUGIN_SDEPEND(XOF, XOF_MGF1_SHA512),
|
PLUGIN_SDEPEND(XOF, XOF_MGF1_SHA512),
|
||||||
|
PLUGIN_SDEPEND(XOF, XOF_MGF1_SHA3_256),
|
||||||
|
PLUGIN_SDEPEND(XOF, XOF_MGF1_SHA3_512),
|
||||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_NULL),
|
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_NULL),
|
||||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA2_224),
|
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA2_224),
|
||||||
PLUGIN_DEPENDS(HASHER, HASH_SHA224),
|
PLUGIN_DEPENDS(HASHER, HASH_SHA224),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2016 Andreas Steffen
|
* Copyright (C) 2016-2023 Andreas Steffen
|
||||||
*
|
*
|
||||||
* Copyright (C) secunet Security Networks AG
|
* Copyright (C) secunet Security Networks AG
|
||||||
*
|
*
|
||||||
@ -53,6 +53,14 @@ METHOD(plugin_t, get_features, int,
|
|||||||
PLUGIN_DEPENDS(HASHER, HASH_SHA384),
|
PLUGIN_DEPENDS(HASHER, HASH_SHA384),
|
||||||
PLUGIN_PROVIDE(XOF, XOF_MGF1_SHA512),
|
PLUGIN_PROVIDE(XOF, XOF_MGF1_SHA512),
|
||||||
PLUGIN_DEPENDS(HASHER, HASH_SHA512),
|
PLUGIN_DEPENDS(HASHER, HASH_SHA512),
|
||||||
|
PLUGIN_PROVIDE(XOF, XOF_MGF1_SHA3_224),
|
||||||
|
PLUGIN_DEPENDS(HASHER, HASH_SHA3_224),
|
||||||
|
PLUGIN_PROVIDE(XOF, XOF_MGF1_SHA3_256),
|
||||||
|
PLUGIN_DEPENDS(HASHER, HASH_SHA3_256),
|
||||||
|
PLUGIN_PROVIDE(XOF, XOF_MGF1_SHA3_384),
|
||||||
|
PLUGIN_DEPENDS(HASHER, HASH_SHA3_384),
|
||||||
|
PLUGIN_PROVIDE(XOF, XOF_MGF1_SHA3_512),
|
||||||
|
PLUGIN_DEPENDS(HASHER, HASH_SHA3_512),
|
||||||
};
|
};
|
||||||
*features = f;
|
*features = f;
|
||||||
return countof(f);
|
return countof(f);
|
||||||
|
@ -257,6 +257,18 @@ mgf1_xof_t *mgf1_xof_create(ext_out_function_t algorithm)
|
|||||||
case XOF_MGF1_SHA512:
|
case XOF_MGF1_SHA512:
|
||||||
hash_alg = HASH_SHA512;
|
hash_alg = HASH_SHA512;
|
||||||
break;
|
break;
|
||||||
|
case XOF_MGF1_SHA3_224:
|
||||||
|
hash_alg = HASH_SHA3_224;
|
||||||
|
break;
|
||||||
|
case XOF_MGF1_SHA3_256:
|
||||||
|
hash_alg = HASH_SHA3_256;
|
||||||
|
break;
|
||||||
|
case XOF_MGF1_SHA3_384:
|
||||||
|
hash_alg = HASH_SHA3_384;
|
||||||
|
break;
|
||||||
|
case XOF_MGF1_SHA3_512:
|
||||||
|
hash_alg = HASH_SHA3_512;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user