37 RCSIDH(eap_pwd_h,
"$Id: 013a6e79926a9427812f5f527b457a5a48a58b6b $")
40 #include <openssl/bn.h>
41 #include <openssl/sha.h>
42 #include <openssl/ec.h>
43 #include <openssl/evp.h>
44 #include <openssl/hmac.h>
48 #define EAP_PWD_EXCH_ID 1
49 #define EAP_PWD_EXCH_COMMIT 2
50 #define EAP_PWD_EXCH_CONFIRM 3
55 #define EAP_PWD_GET_LENGTH_BIT(x) ((x)->lm_exchange & 0x80)
56 #define EAP_PWD_SET_LENGTH_BIT(x) ((x)->lm_exchange |= 0x80)
57 #define EAP_PWD_GET_MORE_BIT(x) ((x)->lm_exchange & 0x40)
58 #define EAP_PWD_SET_MORE_BIT(x) ((x)->lm_exchange |= 0x40)
59 #define EAP_PWD_GET_EXCHANGE(x) ((x)->lm_exchange & 0x3f)
60 #define EAP_PWD_SET_EXCHANGE(x,y) ((x)->lm_exchange |= (y))
65 #define EAP_PWD_DEF_RAND_FUN 1
67 #define EAP_PWD_DEF_PRF 1
70 #define EAP_PWD_PREP_NONE 0
71 #define EAP_PWD_PREP_MS 1
72 #define EAP_PWD_PREP_SASL 2
74 }
CC_HINT(packed) pwd_id_packet_t;
78 #define PWD_STATE_ID_REQ 1
79 #define PWD_STATE_COMMIT 2
80 #define PWD_STATE_CONFIRM 3
103 uint8_t my_confirm[SHA256_DIGEST_LENGTH];
107 char const *password,
int password_len,
108 char const *id_server,
int id_server_len,
109 char const *id_peer,
int id_peer_len,
116 uint8_t *msk, uint8_t *emsk);
118 void print_buf(
char *str, uint8_t *buf,
int len);
int compute_server_confirm(pwd_session_t *sess, uint8_t *out, BN_CTX *bnctx)
int compute_scalar_element(pwd_session_t *sess, BN_CTX *bnctx)
struct _pwd_session_t pwd_session_t
int process_peer_commit(pwd_session_t *sess, uint8_t *in, size_t in_len, BN_CTX *bnctx)
int compute_password_element(pwd_session_t *sess, uint16_t grp_num, char const *password, int password_len, char const *id_server, int id_server_len, char const *id_peer, int id_peer_len, uint32_t *token)
struct _pwd_hdr CC_HINT(packed) pwd_hdr
int compute_keys(pwd_session_t *sess, uint8_t *peer_confirm, uint8_t *msk, uint8_t *emsk)
int compute_peer_confirm(pwd_session_t *sess, uint8_t *out, BN_CTX *bnctx)