123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- #ifndef MBEDTLS_ECJPAKE_H
- #define MBEDTLS_ECJPAKE_H
- #include "ecp.h"
- #include "md.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum {
- MBEDTLS_ECJPAKE_CLIENT = 0,
- MBEDTLS_ECJPAKE_SERVER,
- } mbedtls_ecjpake_role;
- typedef struct
- {
- const mbedtls_md_info_t *md_info;
- mbedtls_ecp_group grp;
- mbedtls_ecjpake_role role;
- int point_format;
- mbedtls_ecp_point Xm1;
- mbedtls_ecp_point Xm2;
- mbedtls_ecp_point Xp1;
- mbedtls_ecp_point Xp2;
- mbedtls_ecp_point Xp;
- mbedtls_mpi xm1;
- mbedtls_mpi xm2;
- mbedtls_mpi s;
- } mbedtls_ecjpake_context;
- void mbedtls_ecjpake_init( mbedtls_ecjpake_context *ctx );
- int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx,
- mbedtls_ecjpake_role role,
- mbedtls_md_type_t hash,
- mbedtls_ecp_group_id curve,
- const unsigned char *secret,
- size_t len );
- int mbedtls_ecjpake_check( const mbedtls_ecjpake_context *ctx );
- int mbedtls_ecjpake_write_round_one( mbedtls_ecjpake_context *ctx,
- unsigned char *buf, size_t len, size_t *olen,
- int (*f_rng)(void *, unsigned char *, size_t),
- void *p_rng );
- int mbedtls_ecjpake_read_round_one( mbedtls_ecjpake_context *ctx,
- const unsigned char *buf,
- size_t len );
- int mbedtls_ecjpake_write_round_two( mbedtls_ecjpake_context *ctx,
- unsigned char *buf, size_t len, size_t *olen,
- int (*f_rng)(void *, unsigned char *, size_t),
- void *p_rng );
- int mbedtls_ecjpake_read_round_two( mbedtls_ecjpake_context *ctx,
- const unsigned char *buf,
- size_t len );
- int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx,
- unsigned char *buf, size_t len, size_t *olen,
- int (*f_rng)(void *, unsigned char *, size_t),
- void *p_rng );
- void mbedtls_ecjpake_free( mbedtls_ecjpake_context *ctx );
- #if defined(MBEDTLS_SELF_TEST)
- int mbedtls_ecjpake_self_test( int verbose );
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif
|