Amazon Kinesis Webrtc C SDK
Dtls_openssl.c File Reference
#include "../Include_i.h"
Include dependency graph for Dtls_openssl.c:

Macros

#define LOG_CLASS   "DTLS_openssl"
 

Functions

INT32 dtlsCertificateVerifyCallback (INT32 preverify_ok, X509_STORE_CTX *ctx)
 
VOID acquireDtlsSession (PDtlsSession pDtlsSession)
 
VOID releaseDtlsSession (PDtlsSession pDtlsSession)
 
STATUS dtlsCertificateFingerprint (X509 *pCertificate, PCHAR pBuff)
 
STATUS dtlsTransmissionTimerCallback (UINT32 timerID, UINT64 currentTime, UINT64 customData)
 
STATUS createCertificateAndKey (INT32 certificateBits, BOOL generateRSACertificate, X509 **ppCert, EVP_PKEY **ppPkey)
 
STATUS createSslCtx (PDtlsSessionCertificateInfo pCertificates, UINT32 certCount, SSL_CTX **ppSslCtx)
 
STATUS createSsl (SSL_CTX *pSslCtx, SSL **ppSsl)
 
STATUS freeCertificateAndKey (X509 **ppCert, EVP_PKEY **ppPkey)
 
STATUS createDtlsSession (PDtlsSessionCallbacks pDtlsSessionCallbacks, TIMER_QUEUE_HANDLE timerQueueHandle, INT32 certificateBits, BOOL generateRSACertificate, PRtcCertificate pRtcCertificates, PDtlsSession *ppDtlsSession)
 
STATUS dtlsGenerateCertificateFingerprints (PDtlsSession pDtlsSession, PDtlsSessionCertificateInfo pDtlsSessionCertificateInfo)
 
STATUS beginHandshakeProcess (PDtlsSession pDtlsSession, BOOL isServer, PINT32 sslRet)
 
STATUS dtlsSessionStart (PDtlsSession pDtlsSession, BOOL isServer)
 
STATUS dtlsSessionHandshakeInThread (PDtlsSession pDtlsSession, BOOL isServer)
 
STATUS freeDtlsSession (PDtlsSession *ppDtlsSession)
 
STATUS dtlsSessionProcessPacket (PDtlsSession pDtlsSession, PBYTE pData, PINT32 pDataLen)
 
STATUS dtlsSessionPutApplicationData (PDtlsSession pDtlsSession, PBYTE pData, INT32 dataLen)
 
STATUS dtlsSessionShutdown (PDtlsSession pDtlsSession)
 
STATUS dtlsCheckOutgoingDataBuffer (PDtlsSession pDtlsSession)
 
STATUS dtlsSessionIsInitFinished (PDtlsSession pDtlsSession, PBOOL pIsConnected)
 
STATUS dtlsSessionPopulateKeyingMaterial (PDtlsSession pDtlsSession, PDtlsKeyingMaterial pDtlsKeyingMaterial)
 
STATUS dtlsSessionGetLocalCertificateFingerprint (PDtlsSession pDtlsSession, PCHAR pBuff, UINT32 buffLen)
 
STATUS dtlsSessionVerifyRemoteCertificateFingerprint (PDtlsSession pDtlsSession, PCHAR pExpectedFingerprint)
 

Macro Definition Documentation

◆ LOG_CLASS

#define LOG_CLASS   "DTLS_openssl"

Function Documentation

◆ acquireDtlsSession()

VOID acquireDtlsSession ( PDtlsSession  pDtlsSession)
Here is the caller graph for this function:

◆ beginHandshakeProcess()

STATUS beginHandshakeProcess ( PDtlsSession  pDtlsSession,
BOOL  isServer,
PINT32  sslRet 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createCertificateAndKey()

STATUS createCertificateAndKey ( INT32  certificateBits,
BOOL  generateRSACertificate,
X509 **  ppCert,
EVP_PKEY **  ppPkey 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createDtlsSession()

STATUS createDtlsSession ( PDtlsSessionCallbacks  pDtlsSessionCallbacks,
TIMER_QUEUE_HANDLE  timerQueueHandle,
INT32  certificateBits,
BOOL  generateRSACertificate,
PRtcCertificate  pRtcCertificates,
PDtlsSession ppDtlsSession 
)

Create DTLS session. Not thread safe.

Parameters
PDtlsSessionCallbacks- callbacks
TIMER_QUEUE_HANDLE- timer handle to schedule timer task with
INT32- size of generated certificate
BOOL- whether to generate certificate or not
PRtcCertificate- user provided certificate
PDtlsSession*- pointer to created DtlsSession object
Returns
STATUS - status of operation
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createSsl()

STATUS createSsl ( SSL_CTX *  pSslCtx,
SSL **  ppSsl 
)
Here is the caller graph for this function:

◆ createSslCtx()

STATUS createSslCtx ( PDtlsSessionCertificateInfo  pCertificates,
UINT32  certCount,
SSL_CTX **  ppSslCtx 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsCertificateFingerprint()

STATUS dtlsCertificateFingerprint ( X509 *  pCertificate,
PCHAR  pBuff 
)
Here is the caller graph for this function:

◆ dtlsCertificateVerifyCallback()

INT32 dtlsCertificateVerifyCallback ( INT32  preverify_ok,
X509_STORE_CTX *  ctx 
)
Here is the caller graph for this function:

◆ dtlsCheckOutgoingDataBuffer()

STATUS dtlsCheckOutgoingDataBuffer ( PDtlsSession  pDtlsSession)
Here is the caller graph for this function:

◆ dtlsGenerateCertificateFingerprints()

STATUS dtlsGenerateCertificateFingerprints ( PDtlsSession  pDtlsSession,
PDtlsSessionCertificateInfo  pDtlsSessionCertificateInfo 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionGetLocalCertificateFingerprint()

STATUS dtlsSessionGetLocalCertificateFingerprint ( PDtlsSession  pDtlsSession,
PCHAR  pBuff,
UINT32  buffLen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionHandshakeInThread()

STATUS dtlsSessionHandshakeInThread ( PDtlsSession  pDtlsSession,
BOOL  isServer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionIsInitFinished()

STATUS dtlsSessionIsInitFinished ( PDtlsSession  pDtlsSession,
PBOOL  pIsConnected 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionPopulateKeyingMaterial()

STATUS dtlsSessionPopulateKeyingMaterial ( PDtlsSession  pDtlsSession,
PDtlsKeyingMaterial  pDtlsKeyingMaterial 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionProcessPacket()

STATUS dtlsSessionProcessPacket ( PDtlsSession  pDtlsSession,
PBYTE  pData,
PINT32  pDataLen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionPutApplicationData()

STATUS dtlsSessionPutApplicationData ( PDtlsSession  pDtlsSession,
PBYTE  pData,
INT32  dataLen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionShutdown()

STATUS dtlsSessionShutdown ( PDtlsSession  pDtlsSession)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionStart()

STATUS dtlsSessionStart ( PDtlsSession  pDtlsSession,
BOOL  isServer 
)

Start DTLS handshake. Not thread safe.

Parameters
PDtlsSession- DtlsSession object
BOOL- is server
Returns
STATUS - status of operation
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsSessionVerifyRemoteCertificateFingerprint()

STATUS dtlsSessionVerifyRemoteCertificateFingerprint ( PDtlsSession  pDtlsSession,
PCHAR  pExpectedFingerprint 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dtlsTransmissionTimerCallback()

STATUS dtlsTransmissionTimerCallback ( UINT32  timerID,
UINT64  currentTime,
UINT64  customData 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freeCertificateAndKey()

STATUS freeCertificateAndKey ( X509 **  ppCert,
EVP_PKEY **  ppPkey 
)
Here is the caller graph for this function:

◆ freeDtlsSession()

STATUS freeDtlsSession ( PDtlsSession ppDtlsSession)

Free DTLS session. Not thread safe.

Parameters
PDtlsSession- DtlsSession object to free
Returns
STATUS - status of operation
Here is the call graph for this function:
Here is the caller graph for this function:

◆ releaseDtlsSession()

VOID releaseDtlsSession ( PDtlsSession  pDtlsSession)
Here is the caller graph for this function: