mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-29 14:54:15 +01:00
Add support for alternative ECJPAKE implementation
This commit allows users to provide alternative implementations of the ECJPAKE interface through the configuration option MBEDTLS_ECJPAKE_ALT. When set, the user must add `ecjpake_alt.h` declaring the same interface as `ecjpake.h`, as well as add some compilation unit which implements the functionality. This is in line with the preexisting support for alternative implementations of other modules.
This commit is contained in:
parent
d1a26f19c9
commit
616d1ca605
@ -34,6 +34,8 @@ Features
|
|||||||
The following functions from the ECDH module can be replaced
|
The following functions from the ECDH module can be replaced
|
||||||
with an alternative implementation:
|
with an alternative implementation:
|
||||||
mbedtls_ecdh_gen_public() and mbedtls_ecdh_compute_shared().
|
mbedtls_ecdh_gen_public() and mbedtls_ecdh_compute_shared().
|
||||||
|
* Add support for alternative implementation for ECJPAKE, controlled by
|
||||||
|
new configuration flag MBEDTLS_ECJPAKE_ALT.
|
||||||
|
|
||||||
API Changes
|
API Changes
|
||||||
* Extend RSA interface by multiple functions allowing structure-
|
* Extend RSA interface by multiple functions allowing structure-
|
||||||
|
@ -271,6 +271,7 @@
|
|||||||
//#define MBEDTLS_CMAC_ALT
|
//#define MBEDTLS_CMAC_ALT
|
||||||
//#define MBEDTLS_DES_ALT
|
//#define MBEDTLS_DES_ALT
|
||||||
//#define MBEDTLS_DHM_ALT
|
//#define MBEDTLS_DHM_ALT
|
||||||
|
//#define MBEDTLS_ECJPAKE_ALT
|
||||||
//#define MBEDTLS_GCM_ALT
|
//#define MBEDTLS_GCM_ALT
|
||||||
//#define MBEDTLS_MD2_ALT
|
//#define MBEDTLS_MD2_ALT
|
||||||
//#define MBEDTLS_MD4_ALT
|
//#define MBEDTLS_MD4_ALT
|
||||||
|
@ -44,6 +44,8 @@
|
|||||||
#include "ecp.h"
|
#include "ecp.h"
|
||||||
#include "md.h"
|
#include "md.h"
|
||||||
|
|
||||||
|
#if !defined(MBEDTLS_ECJPAKE_ALT)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@ -223,17 +225,31 @@ int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx,
|
|||||||
*/
|
*/
|
||||||
void mbedtls_ecjpake_free( mbedtls_ecjpake_context *ctx );
|
void mbedtls_ecjpake_free( mbedtls_ecjpake_context *ctx );
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else /* MBEDTLS_ECJPAKE_ALT */
|
||||||
|
#include "ecjpake_alt.h"
|
||||||
|
#endif /* MBEDTLS_ECJPAKE_ALT */
|
||||||
|
|
||||||
#if defined(MBEDTLS_SELF_TEST)
|
#if defined(MBEDTLS_SELF_TEST)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Checkup routine
|
* \brief Checkup routine
|
||||||
*
|
*
|
||||||
* \return 0 if successful, or 1 if a test failed
|
* \return 0 if successful, or 1 if a test failed
|
||||||
*/
|
*/
|
||||||
int mbedtls_ecjpake_self_test( int verbose );
|
int mbedtls_ecjpake_self_test( int verbose );
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif /* MBEDTLS_SELF_TEST */
|
||||||
|
|
||||||
#endif /* ecjpake.h */
|
#endif /* ecjpake.h */
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#if !defined(MBEDTLS_ECJPAKE_ALT)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert a mbedtls_ecjpake_role to identifier string
|
* Convert a mbedtls_ecjpake_role to identifier string
|
||||||
*/
|
*/
|
||||||
@ -764,6 +766,7 @@ cleanup:
|
|||||||
#undef ID_MINE
|
#undef ID_MINE
|
||||||
#undef ID_PEER
|
#undef ID_PEER
|
||||||
|
|
||||||
|
#endif /* ! MBEDTLS_ECJPAKE_ALT */
|
||||||
|
|
||||||
#if defined(MBEDTLS_SELF_TEST)
|
#if defined(MBEDTLS_SELF_TEST)
|
||||||
|
|
||||||
|
@ -108,6 +108,9 @@ static const char *features[] = {
|
|||||||
#if defined(MBEDTLS_DHM_ALT)
|
#if defined(MBEDTLS_DHM_ALT)
|
||||||
"MBEDTLS_DHM_ALT",
|
"MBEDTLS_DHM_ALT",
|
||||||
#endif /* MBEDTLS_DHM_ALT */
|
#endif /* MBEDTLS_DHM_ALT */
|
||||||
|
#if defined(MBEDTLS_ECJPAKE_ALT)
|
||||||
|
"MBEDTLS_ECJPAKE_ALT",
|
||||||
|
#endif /* MBEDTLS_ECJPAKE_ALT */
|
||||||
#if defined(MBEDTLS_GCM_ALT)
|
#if defined(MBEDTLS_GCM_ALT)
|
||||||
"MBEDTLS_GCM_ALT",
|
"MBEDTLS_GCM_ALT",
|
||||||
#endif /* MBEDTLS_GCM_ALT */
|
#endif /* MBEDTLS_GCM_ALT */
|
||||||
|
Loading…
Reference in New Issue
Block a user