TrustCore SDK NanoSec API reference  version 7.0
eap_psk.h
Go to the documentation of this file.
1 /*
2  * eap_psk.h
3  *
4  * EAP PSK Helper Functions
5  *
6  * Copyright 2019-2024 DigiCert, Inc. All Rights Reserved.
7  * Proprietary and Confidential Material.
8  *
9  */
10 
32 #ifndef __EAP_PSK_H__
33 #define __EAP_PSK_H__
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 #if (defined(__ENABLE_MOCANA_EAP_PEER__) || defined(__ENABLE_MOCANA_EAP_AUTH__))
40 
42 typedef enum eapPSKEvt_e
43 {
44  EAP_PSK_EVT_RECV_FIRST_PKT = 1,
45  EAP_PSK_EVT_RECV_SECOND_PKT,
46  EAP_PSK_EVT_RECV_THIRD_PKT,
47  EAP_PSK_EVT_RECV_FOURTH_PKT,
48  EAP_PSK_EVT_RECV_EXT_PKT
49 } eapPSKEvt;
50 
52 typedef enum eapPSKResultInd_e
53 {
54  EAP_PSK_RESULT_CONTINUE = 1,
55  EAP_PSK_RESULT_SUCCESS,
56  EAP_PSK_RESULT_FAILURE
57 } eapPSKResultInd;
58 
60 typedef struct eapPSKConfig_s
61 {
62  MSTATUS(*functionPtrEvtCallback)(ubyte * appCb,ubyte *eapPSKHdl,eapPSKEvt evt);
63  eapSessionType sessionType; /* PEER- AUTH */
64 
65 } eapPSKConfig;
66 
103 MOC_EXTERN MSTATUS
104 EAP_PSKKeySetup (ubyte *eapPSKHdl, ubyte *psk);
105 
107 MOC_EXTERN MSTATUS
108 EAP_PSKAes128(ubyte * key,ubyte2 keyLen,ubyte *encr_data,ubyte2 encrLen,ubyte *iv);
109 
147 MOC_EXTERN MSTATUS
148 EAP_PSKInitSession(ubyte * appSessionHdl,ubyte **eapPSKHdl, eapPSKConfig eapPSKCfg);
149 
184 MOC_EXTERN MSTATUS
185 EAP_PSKDeleteSession(ubyte *eapPSKHdl);
186 
224 MOC_EXTERN MSTATUS
225 EAP_PSKAuthRequestFirst(ubyte * eapPSKHdl,ubyte * rand_s,
226  ubyte * id_s, ubyte2 id_s_len,
227  ubyte ** request,ubyte4 *requestLen);
228 
267 MOC_EXTERN MSTATUS
268 EAP_PSKPeerReplySecond(ubyte * eapPSKHdl,ubyte * rand_p,
269  ubyte * id_p, ubyte2 id_p_len,
270  ubyte ** reply,ubyte4 *replyLen);
271 
312 MOC_EXTERN MSTATUS
313 EAP_PSKAuthRequestThird(ubyte * eapPSKHdl,eapPSKResultInd resultInd,
314  ubyte * ext, ubyte2 extLen,ubyte id,
315  ubyte ** request,ubyte4 *requestLen);
316 
358 MOC_EXTERN MSTATUS
359 EAP_PSKPeerReplyFourth(ubyte * eapPSKHdl,eapPSKResultInd resultInd,
360  ubyte * ext, ubyte2 extLen,ubyte id,
361  ubyte ** reply,ubyte4 *replyLen);
362 
402 MOC_EXTERN MSTATUS
403 EAP_PSKProcessMsg(ubyte * eapPSKHdl,ubyte * data,
404  ubyte4 dataLen,ubyte id);
405 
444 MOC_EXTERN MSTATUS
445 EAP_PSKgetKeys(ubyte * eapPSKHdl,ubyte **tek,ubyte **msk,ubyte **emsk);
446 
484 MOC_EXTERN MSTATUS
485 EAP_PSKgetID_S(ubyte * eapPSKHdl,ubyte **id_s,ubyte2 *id_s_len);
486 
524 MOC_EXTERN MSTATUS
525 EAP_PSKgetID_P(ubyte * eapPSKHdl,ubyte **id_p,ubyte2 *id_p_len);
526 
564 MOC_EXTERN MSTATUS
565 EAP_PSKgetEXT(ubyte * eapPSKHdl,ubyte **ext,ubyte2 *extLen);
566 
603 MOC_EXTERN MSTATUS
604 EAP_PSKgetResultInd(ubyte * eapPSKHdl,eapPSKResultInd *resInd);
605 
606 #endif /* ((defined(__ENABLE_MOCANA_EAP_PEER__) || defined(__ENABLE_MOCANA_EAP_AUTH__)) */
607 
608 #ifdef __cplusplus
609 }
610 #endif
611 
612 #endif /* __EAP_PSK_H__ */
MOC_EXTERN MSTATUS EAP_PSKgetID_P(ubyte *eapPSKHdl, ubyte **id_p, ubyte2 *id_p_len)
Returns the ID_P received from the Peer.
MOC_EXTERN MSTATUS EAP_PSKPeerReplySecond(ubyte *eapPSKHdl, ubyte *rand_p, ubyte *id_p, ubyte2 id_p_len, ubyte **reply, ubyte4 *replyLen)
Forms the Second Packet to be sent by the Peer.
MOC_EXTERN MSTATUS EAP_PSKKeySetup(ubyte *eapPSKHdl, ubyte *psk)
Generates the AK/KDK Based upon PSK.
MOC_EXTERN MSTATUS EAP_PSKProcessMsg(ubyte *eapPSKHdl, ubyte *data, ubyte4 dataLen, ubyte id)
Processes the incoming EAP PSK data message.
MOC_EXTERN MSTATUS EAP_PSKPeerReplyFourth(ubyte *eapPSKHdl, eapPSKResultInd resultInd, ubyte *ext, ubyte2 extLen, ubyte id, ubyte **reply, ubyte4 *replyLen)
Forms the fourth reply packet to be sent by the Peer.
MOC_EXTERN MSTATUS EAP_PSKDeleteSession(ubyte *eapPSKHdl)
Deletes the EAP PSK Session.
MOC_EXTERN MSTATUS EAP_PSKAuthRequestFirst(ubyte *eapPSKHdl, ubyte *rand_s, ubyte *id_s, ubyte2 id_s_len, ubyte **request, ubyte4 *requestLen)
Forms the First Packet to be sent by the Authenticator.
MOC_EXTERN MSTATUS EAP_PSKgetID_S(ubyte *eapPSKHdl, ubyte **id_s, ubyte2 *id_s_len)
Returns the ID_S received from the Authenticator.
MOC_EXTERN MSTATUS EAP_PSKAuthRequestThird(ubyte *eapPSKHdl, eapPSKResultInd resultInd, ubyte *ext, ubyte2 extLen, ubyte id, ubyte **request, ubyte4 *requestLen)
Forms the third request packet to be sent by the Authenticator.
MOC_EXTERN MSTATUS EAP_PSKgetResultInd(ubyte *eapPSKHdl, eapPSKResultInd *resInd)
Returns the result indication received.
MOC_EXTERN MSTATUS EAP_PSKgetKeys(ubyte *eapPSKHdl, ubyte **tek, ubyte **msk, ubyte **emsk)
Returns the generated session keys.
MOC_EXTERN MSTATUS EAP_PSKgetEXT(ubyte *eapPSKHdl, ubyte **ext, ubyte2 *extLen)
Returns the EXTENSION data received.
MOC_EXTERN MSTATUS EAP_PSKInitSession(ubyte *appSessionHdl, ubyte **eapPSKHdl, eapPSKConfig eapPSKCfg)
Inits the EAP PSK Session.