static AzureIoTResult_t prvFindRootKeyValue()

in ports/mbedTLS/azure_iot_jws_mbedtls.c [323:366]


static AzureIoTResult_t prvFindRootKeyValue( AzureIoTJSONReader_t * pxPayload,
                                             az_span * pxKIDSpan )
{
    AzureIoTResult_t xResult = eAzureIoTSuccess;
    AzureIoTJSONTokenType_t xJSONTokenType;

    /*Begin object */
    azureiotresultRETURN_IF_FAILED( AzureIoTJSONReader_NextToken( pxPayload ) );
    /*Property Name */
    azureiotresultRETURN_IF_FAILED( AzureIoTJSONReader_NextToken( pxPayload ) );

    while( xResult == eAzureIoTSuccess )
    {
        if( AzureIoTJSONReader_TokenIsTextEqual( pxPayload, ( const uint8_t * ) jws_kid_json_value, sizeof( jws_kid_json_value ) - 1 ) )
        {
            azureiotresultRETURN_IF_FAILED( AzureIoTJSONReader_NextToken( pxPayload ) );
            *pxKIDSpan = pxPayload->_internal.xCoreReader.token.slice;

            break;
        }
        else
        {
            azureiotresultRETURN_IF_FAILED( AzureIoTJSONReader_NextToken( pxPayload ) );
            azureiotresultRETURN_IF_FAILED( AzureIoTJSONReader_SkipChildren( pxPayload ) );
            xResult = AzureIoTJSONReader_NextToken( pxPayload );
        }
    }

    if( xResult != eAzureIoTSuccess )
    {
        AZLogError( ( "[JWS] Parse Root Key Error: 0x%08x", xResult ) );
        return xResult;
    }

    azureiotresultRETURN_IF_FAILED( AzureIoTJSONReader_TokenType( pxPayload, &xJSONTokenType ) );

    if( xJSONTokenType != eAzureIoTJSONTokenSTRING )
    {
        AZLogError( ( "[JWS] JSON token type wrong | type: %08x", xJSONTokenType ) );
        return eAzureIoTErrorFailed;
    }

    return eAzureIoTSuccess;
}