mbedtls_ecjpake_context
ecjpake.h
mbedtls_md_type_t mbedtls_md_type_t mbedtls_ecjpake_context::private_md_type private_md_type mbedtls_ecjpake_context::private_md_type

Hash to use

mbedtls_ecp_group mbedtls_ecp_group mbedtls_ecjpake_context::private_grp private_grp mbedtls_ecjpake_context::private_grp

Elliptic curve

mbedtls_ecjpake_role mbedtls_ecjpake_role mbedtls_ecjpake_context::private_role private_role mbedtls_ecjpake_context::private_role

Are we client or server?

int int mbedtls_ecjpake_context::private_point_format private_point_format mbedtls_ecjpake_context::private_point_format

Format for point export

mbedtls_ecp_point mbedtls_ecp_point mbedtls_ecjpake_context::private_Xm1 private_Xm1 mbedtls_ecjpake_context::private_Xm1

My public key 1 C: X1, S: X3

mbedtls_ecp_point mbedtls_ecp_point mbedtls_ecjpake_context::private_Xm2 private_Xm2 mbedtls_ecjpake_context::private_Xm2

My public key 2 C: X2, S: X4

mbedtls_ecp_point mbedtls_ecp_point mbedtls_ecjpake_context::private_Xp1 private_Xp1 mbedtls_ecjpake_context::private_Xp1

Peer public key 1 C: X3, S: X1

mbedtls_ecp_point mbedtls_ecp_point mbedtls_ecjpake_context::private_Xp2 private_Xp2 mbedtls_ecjpake_context::private_Xp2

Peer public key 2 C: X4, S: X2

mbedtls_ecp_point mbedtls_ecp_point mbedtls_ecjpake_context::private_Xp private_Xp mbedtls_ecjpake_context::private_Xp

Peer public key C: Xs, S: Xc

mbedtls_mpi mbedtls_mpi mbedtls_ecjpake_context::private_xm1 private_xm1 mbedtls_ecjpake_context::private_xm1

My private key 1 C: x1, S: x3

mbedtls_mpi mbedtls_mpi mbedtls_ecjpake_context::private_xm2 private_xm2 mbedtls_ecjpake_context::private_xm2

My private key 2 C: x2, S: x4

mbedtls_mpi mbedtls_mpi mbedtls_ecjpake_context::private_s private_s mbedtls_ecjpake_context::private_s

Pre-shared secret (passphrase)

int int mbedtls_ecjpake_context::dummy dummy mbedtls_ecjpake_context::dummy

EC J-PAKE context structure.

J-PAKE is a symmetric protocol, except for the identifiers used in Zero-Knowledge Proofs, and the serialization of the second message (KeyExchange) as defined by the Thread spec.

In order to benefit from this symmetry, we choose a different naming convention from the Thread v1.0 spec. Correspondence is indicated in the description as a pair C: client name, S: server name

mbedtls_ecjpake_context
private_grp
private_Xm1
private_Xm2
private_Xp
private_Xp1
private_Xp2
private_s
private_xm1
private_xm2
mbedtls_ecp_group
A
B
N
P
G
private_T
mbedtls_ecp_point
private_X
private_Y
private_Z
mbedtls_mpi
- mbedtls_ecjpake_context
  dummy
- mbedtls_ecjpake_context
  private_grp
- mbedtls_ecjpake_context
  private_md_type
- mbedtls_ecjpake_context
  private_point_format
- mbedtls_ecjpake_context
  private_role
- mbedtls_ecjpake_context
  private_s
- mbedtls_ecjpake_context
  private_Xm1
- mbedtls_ecjpake_context
  private_xm1
- mbedtls_ecjpake_context
  private_Xm2
- mbedtls_ecjpake_context
  private_xm2
- mbedtls_ecjpake_context
  private_Xp
- mbedtls_ecjpake_context
  private_Xp1
- mbedtls_ecjpake_context
  private_Xp2