39 #if (defined(__ENABLE_MOCANA_EAP_PEER__) || defined(__ENABLE_MOCANA_EAP_AUTH__)) 41 #define EAP_TLS_START_FLAG (0x20) 42 #define EAP_TLS_MORE_FLAG (0x40) 43 #define EAP_TLS_LENGTH_FLAG (0x80) 44 #define EAP_TLS_VERSION_MASK (0x07) 45 #define MAX_EAP_TLS_MTU (1300) 46 #define MAX_EAP_SSL_CONNECTIONS_ALLOWED (1000) 47 #define EAP_TLS_LENGTH_BYTES (4) 50 typedef enum eap_tls_connection_e {
51 EAP_TLS_CONNECTION_CLIENT = 1,
52 EAP_TLS_CONNECTION_SERVER,
57 typedef enum eap_tls_param_e {
58 EAP_TLS_PARAM_PAC_KEY = 1,
59 EAP_TLS_PARAM_INNER_APP,
60 EAP_TLS_PARAM_MAX_MTU,
61 EAP_TLS_SSL_CERT_STORE_PTR
64 #if (defined(__ENABLE_MOCANA_EAP_TLS__)) 136 ubyte methodType, eap_tls_param paramType,ubyte *param,ubyte4 paramLen);
228 eap_tls_connection connectionType,
229 ubyte4 *sessionIdLen,
230 ubyte *sessionId, ubyte *masterSecret,ubyte *dnsName,
231 ubyte methodType,ubyte peerVersion, ubyte authVersion,
232 struct certStore* pCertStore);
289 ubyte *pkt,ubyte4 pktLen,
290 ubyte **eapRespData, ubyte4 *eapRespLen);
334 certDescriptor* sslCert,
336 ubyte **eapReqData, ubyte4 *eapReqLen);
395 ubyte *data, ubyte4 len,
396 ubyte **eapRespData, ubyte4 *eapRespLen);
439 ubyte4 *sessionStatus);
481 sbyte4 *connectionInstance);
563 ubyte4 *sessionIdLen,
564 ubyte *sessionId, ubyte *masterSecret);
621 ubyte *data, ubyte4 len,
622 ubyte **eapRespData, ubyte4 *eapRespLen,
623 ubyte **eapRemData, ubyte4 *eapRemLen);
673 ubyte *data, ubyte4 len,
674 ubyte **eapRespData, ubyte4 *eapRespLen);
720 ubyte *authId, ubyte2 authIdLen);
759 EAP_TLSgetKey(ubyte *tls_connection,ubyte *key,ubyte2 keyLen);
761 #ifdef __ENABLE_MOCANA_SSL_ALERTS__ 807 EAP_TLSformAlert(ubyte *tls_connection,sbyte4 alertClass,sbyte4 alertId,ubyte4 len, ubyte **eapRespData, ubyte4 *eapRespLen);
MOC_EXTERN MSTATUS EAP_TLSstartRequest(ubyte *appSessionHdl, ubyte *tls_connection, certDescriptor *sslCert, ubyte methodType, ubyte **eapReqData, ubyte4 *eapReqLen)
Send an EAP-TLS Start message.
MOC_EXTERN MSTATUS EAP_TLSCreateSession(ubyte *appSessionHdl, ubyte **tls_connection, eap_tls_connection connectionType, ubyte4 *sessionIdLen, ubyte *sessionId, ubyte *masterSecret, ubyte *dnsName, ubyte methodType, ubyte peerVersion, ubyte authVersion, struct certStore *pCertStore)
Create an EAP-TLS session.
MOC_EXTERN MSTATUS EAP_TLSgetMTU(ubyte *tls_connection, ubyte *setMTU)
Get the MTU (maximum transmission unit) value from the TLS control block.
MOC_EXTERN MSTATUS EAP_TLSGetNegotiatedVersion(ubyte *tls_connection, ubyte *version)
Get the negotiated version of an EAP-TLS packet.
MOC_EXTERN MSTATUS EAP_TLSgetSSLInstance(ubyte *appSessionHdl, ubyte *tls_connection, sbyte4 *connectionInstance)
Get an EAP-TLS connection's SSL connection instance.
MOC_EXTERN MSTATUS EAP_TLSSendData(ubyte *appSessionHdl, ubyte *tls_connection, ubyte *data, ubyte4 len, ubyte **eapRespData, ubyte4 *eapRespLen)
Encrypt EAP (clear text) data.
MOC_EXTERN MSTATUS EAP_TLSPeerGetAuthVersion(ubyte *appSessionHdl, ubyte *authVersion, ubyte *pkt, ubyte pktLen)
Get the authentication version of an EAP-TLS packet.
MOC_EXTERN MSTATUS EAP_TLSformAlert(ubyte *tls_connection, sbyte4 alertClass, sbyte4 alertId, ubyte4 len, ubyte **eapRespData, ubyte4 *eapRespLen)
Build a TLS Alert Messsage to be sent over EAP.
MOC_EXTERN MSTATUS EAP_TLSRecvData(ubyte *appSessionHdl, ubyte *tls_connection, ubyte *data, ubyte4 len, ubyte **eapRespData, ubyte4 *eapRespLen, ubyte **eapRemData, ubyte4 *eapRemLen)
Decrypt EAP message payload.
MOC_EXTERN MSTATUS EAP_TLSgetClientSessionInfo(ubyte *appSessionHdl, ubyte *tls_connection, ubyte4 *sessionIdLen, ubyte *sessionId, ubyte *masterSecret)
Get EAP-TLS session's session ID and master secret.
MOC_EXTERN MSTATUS EAP_TLSsetParams(ubyte *appSessionHdl, ubyte *tls_connection, ubyte methodType, eap_tls_param paramType, ubyte *param, ubyte4 paramLen)
Set any parameter of any method to a specified value.
MOC_EXTERN MSTATUS EAP_TLSSetAuthId(ubyte *appSessionHdl, ubyte *tls_connection, ubyte *authId, ubyte2 authIdLen)
Set EAP-FAST authenticator ID.
MOC_EXTERN MSTATUS EAP_TLScloseConnection(ubyte *appSessionHdl, ubyte *tls_connection)
Close an EAP-TLS connection.
MOC_EXTERN MSTATUS EAP_TLSgetSessionStatus(ubyte *appSessionHdl, ubyte *tls_connection, ubyte4 *sessionStatus)
Get an EAP-TLS session's session status.
MOC_EXTERN MSTATUS EAP_TLSProcessMsg(ubyte *appSessionHdl, ubyte *tls_connection, ubyte *data, ubyte4 len, ubyte **eapRespData, ubyte4 *eapRespLen)
Process a received EAP-TLS message and build a response.
MOC_EXTERN MSTATUS EAP_TLSgetKey(ubyte *tls_connection, ubyte *key, ubyte2 keyLen)
Get a new EAP-TLS session key.
MOC_EXTERN MSTATUS EAP_TLSPeerStart(ubyte *appSessionHdl, ubyte *tls_connection, ubyte methodType, ubyte *pkt, ubyte4 pktLen, ubyte **eapRespData, ubyte4 *eapRespLen)
Build a client Hello message and add it to the send buffer.