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. Correspondance is indicated in the description as a pair C: client name, S: server name

Public Attributes#

Pointer to command context object.

uint32_t

Curve flags to use.

Are we client or server?

char

J-PAKE password.

size_t

J-PAKE password length.

uint8_t

Random scalar for exchange.

uint8_t

Our point 1 (round 1)

uint8_t

Our point 2 (round 1)

uint8_t

Their point 1 (round 1)

uint8_t

Their point 2 (round 1)

uint8_t

Their point (round 2)

Public Attribute Documentation#

cmd_ctx#

sl_se_command_context_t* sl_se_ecjpake_context_t::cmd_ctx

Pointer to command context object.


curve_flags#

uint32_t sl_se_ecjpake_context_t::curve_flags

Curve flags to use.


role#

sl_se_ecjpake_role_t sl_se_ecjpake_context_t::role

Are we client or server?


pwd#

char sl_se_ecjpake_context_t::pwd[32]

J-PAKE password.


pwd_len#

size_t sl_se_ecjpake_context_t::pwd_len

J-PAKE password length.


r#

uint8_t sl_se_ecjpake_context_t::r[32]

Random scalar for exchange.


Xm1#

uint8_t sl_se_ecjpake_context_t::Xm1[64]

Our point 1 (round 1)


Xm2#

uint8_t sl_se_ecjpake_context_t::Xm2[64]

Our point 2 (round 1)


Xp1#

uint8_t sl_se_ecjpake_context_t::Xp1[64]

Their point 1 (round 1)


Xp2#

uint8_t sl_se_ecjpake_context_t::Xp2[64]

Their point 2 (round 1)


Xp#

uint8_t sl_se_ecjpake_context_t::Xp[64]

Their point (round 2)