in source/core_sntp_client.c [382:425]
static SntpStatus_t addClientAuthentication( SntpContext_t * pContext )
{
SntpStatus_t status = SntpSuccess;
uint16_t authDataSize = 0U;
assert( pContext != NULL );
assert( pContext->authIntf.generateClientAuth != NULL );
assert( pContext->currentServerIndex <= pContext->numOfServers );
status = pContext->authIntf.generateClientAuth( pContext->authIntf.pAuthContext,
&pContext->pTimeServers[ pContext->currentServerIndex ],
pContext->pNetworkBuffer,
pContext->bufferSize,
&authDataSize );
if( status != SntpSuccess )
{
LogError( ( "Unable to send time request: Client authentication function failed: "
"RetStatus=%s", Sntp_StatusToStr( status ) ) );
}
/* Sanity check that the returned authentication data size fits in the remaining space
* of the request buffer besides the first #SNTP_PACKET_BASE_SIZE bytes. */
else if( authDataSize > ( pContext->bufferSize - SNTP_PACKET_BASE_SIZE ) )
{
LogError( ( "Unable to send time request: Invalid authentication code size: "
"AuthCodeSize=%lu, NetworkBufferSize=%lu",
( unsigned long ) authDataSize, ( unsigned long ) pContext->bufferSize ) );
status = SntpErrorAuthFailure;
}
else
{
/* With the authentication data added. calculate total SNTP request packet size. The same
* size would be expected in the SNTP response from server. */
pContext->sntpPacketSize = SNTP_PACKET_BASE_SIZE + authDataSize;
LogInfo( ( "Appended client authentication code to SNTP request packet:"
" AuthCodeSize=%lu, TotalPacketSize=%lu",
( unsigned long ) authDataSize,
( unsigned long ) pContext->sntpPacketSize ) );
}
return status;
}