TrustCore SDK NanoSec API reference  version 7.0
eap_peap.h
Go to the documentation of this file.
1 /*
2  * eap_peap.h
3  *
4  * EAP PEAP Helper Functions
5  *
6  * Copyright 2019-2024 DigiCert, Inc. All Rights Reserved.
7  * Proprietary and Confidential Material.
8  *
9  */
10 
32 #ifndef __EAP_PEAP_H__
33 #define __EAP_PEAP_H__
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 #if (defined(__ENABLE_MOCANA_EAP_PEER__) || defined(__ENABLE_MOCANA_EAP_AUTH__))
40 #if (defined(__ENABLE_MOCANA_EAP_PEAP__))
41 
62 typedef struct eap_peap_params
63 {
64 
102  MSTATUS (*ulTransmit)(ubyte * appSessionCB,ubyte * eapPkt,ubyte4 eapPktLen,intBoolean encrypted);
103 
140  MSTATUS (*ul2ndStageReceive)(ubyte *appSessionCB, eapMethodType type,
141  eapCode code, ubyte id,
142  ubyte *eap_data, ubyte4 eap_data_len, ubyte *opaque_data);
143 
175  MSTATUS (*ulAuthResultTransmit)(ubyte * appSessionCB,eapAuthStatus authStatus);
176 
181  ubyte UserName[EAP_MAX_USER_LEN];
186  ubyte2 UserNameLen;
187 
192  ubyte4 instanceId; /* Phase 1 Instance Id */
193 
204  eapSessionType sessionType; /* (PEER/AUTH) */
205 
212  sbyte4 connectionInstance; /* TLS COnnection INstance */
213 
221  ubyte *tls_con; /* EAP TLS Connection INstance */
222 
227  ubyte version; /* PEAP Version */
228 
230 
264 MOC_EXTERN MSTATUS
265 EAP_PEAPinitSession(ubyte * appSessionCB,ubyte **eapPEAPSession,
266  EAP_PEAP_params *eapPEAPparams);
267 
306 MOC_EXTERN MSTATUS
307 EAP_PEAPFormSendPacket(void *eapPEAPCb,ubyte *pkt, ubyte4 pktLen,
308  ubyte **eapResponse, ubyte4 *eapRespLen);
309 
341 MOC_EXTERN MSTATUS
342 EAP_PEAPgetSessionStatus(void * eapPEAPCb,ubyte *eapSessionStatus);
343 
376 MOC_EXTERN MSTATUS
377 EAP_PEAPreceiveLLPacket(void * eapPEAPCb,ubyte *pkt,ubyte4 pktLen);
378 
424 MOC_EXTERN MSTATUS EAP_PEAPulAuthTransmit (ubyte * eapSessionHdl,
425  ubyte4 instanceId,
426  eapMethodType methodType,
427  eapCode code,
428  eapMethodDecision methodDecision,
429  eapMethodState methodState,
430  ubyte * eap_data,
431  ubyte4 eap_data_len);
432 
474 MOC_EXTERN MSTATUS EAP_PEAPulPeerTransmit (ubyte * eapSessionHdl,
475  ubyte4 instanceId,
476  eapMethodType methodType,
477  eapCode code,
478  eapMethodDecision methodDecision,
479  eapMethodState methodState,
480  ubyte * eap_data,
481  ubyte4 eap_data_len);
482 
511 MOC_EXTERN MSTATUS EAP_PEAPSendResultTlv(ubyte * eapHdl, ubyte2 intResult);
512 
542 MOC_EXTERN MSTATUS
543 EAP_PEAPdeleteSession(void *eapPEAPSession);
544 
579 MOC_EXTERN MSTATUS
580 EAP_PEAPSetEapHdr(void *eapCB, eapCode code, ubyte id);
581 
612 MOC_EXTERN MSTATUS
613 EAP_PEAPgetKey(void *eapCb,ubyte *key,ubyte2 keyLen);
614 
615 #endif /* ((defined(__ENABLE_MOCANA_EAP_PEAP__) */
616 #endif /* ((defined(__ENABLE_MOCANA_EAP_PEER__) || defined(__ENABLE_MOCANA_EAP_AUTH__)) */
617 
618 #ifdef __cplusplus
619 }
620 #endif
621 
622 #endif /* __EAP_PEAP_H__ */
MOC_EXTERN MSTATUS EAP_PEAPgetKey(void *eapCb, ubyte *key, ubyte2 keyLen)
Generate and return a session's authentication keys.
MOC_EXTERN MSTATUS EAP_PEAPulPeerTransmit(ubyte *eapSessionHdl, ubyte4 instanceId, eapMethodType methodType, eapCode code, eapMethodDecision methodDecision, eapMethodState methodState, ubyte *eap_data, ubyte4 eap_data_len)
Transmit packets from the peer to the authenticator through the second stage EAP stack.
eapSessionType sessionType
Type of session: EAP_SESSION_TYPE_PEER or EAP_SESSION_TYPE_AUTHENTICATOR.
Definition: eap_peap.h:204
MOC_EXTERN MSTATUS EAP_PEAPSendResultTlv(ubyte *eapHdl, ubyte2 intResult)
Build and send a result TLV packet.
ubyte2 UserNameLen
Number of bytes in the inner method user name (UserName).
Definition: eap_peap.h:186
MOC_EXTERN MSTATUS EAP_PEAPFormSendPacket(void *eapPEAPCb, ubyte *pkt, ubyte4 pktLen, ubyte **eapResponse, ubyte4 *eapRespLen)
Build a PEAP packet.
MOC_EXTERN MSTATUS EAP_PEAPulAuthTransmit(ubyte *eapSessionHdl, ubyte4 instanceId, eapMethodType methodType, eapCode code, eapMethodDecision methodDecision, eapMethodState methodState, ubyte *eap_data, ubyte4 eap_data_len)
Transmit packets from the authenticator to the peer through the second stage EAP stack.
Configuration settings and callback function pointers for EAP-PEAP sessions.
Definition: eap_peap.h:62
MOC_EXTERN MSTATUS EAP_PEAPSetEapHdr(void *eapCB, eapCode code, ubyte id)
Assign the code and ID values to an inner EAP header.
ubyte * tls_con
EAP_TLS connection control block.
Definition: eap_peap.h:221
MOC_EXTERN MSTATUS EAP_PEAPinitSession(ubyte *appSessionCB, ubyte **eapPEAPSession, EAP_PEAP_params *eapPEAPparams)
Create and initialize an EAP-PEAP session.
ubyte4 instanceId
Phase 1 instance ID.
Definition: eap_peap.h:192
sbyte4 connectionInstance
TLS connection's session ID.
Definition: eap_peap.h:212
MOC_EXTERN MSTATUS EAP_PEAPreceiveLLPacket(void *eapPEAPCb, ubyte *pkt, ubyte4 pktLen)
Process an encrypted PEAP payload.
MOC_EXTERN MSTATUS EAP_PEAPdeleteSession(void *eapPEAPSession)
Delete an EAP-PEAP session.
MOC_EXTERN MSTATUS EAP_PEAPgetSessionStatus(void *eapPEAPCb, ubyte *eapSessionStatus)
Get a session's current status.
ubyte version
PEAP version.
Definition: eap_peap.h:227