FreeRTOS-Plus/ThirdParty/WolfSSL-FIPS-Ready/wolfcrypt/src/asn.c
/* Get small count integer, 32 bits or less */
Get small count integer, 32 bits or less
Get small count integer 32 bits or less
int GetShortInt(const byte* input, word32* inOutIdx, int* number, word32 maxIdx)
{
    word32 idx = *inOutIdx;
    word32 len;
    byte   tag;
    *number = 0;
    if ((idx + 2) > maxIdx)
        return BUFFER_E;
    if (GetASNTag(input, &idx, &tag, maxIdx) != 0)
        return ASN_PARSE_E;
    if (tag != ASN_INTEGER)
        return ASN_PARSE_E;
    len = input[idx++];
    if (len > 4)
        return ASN_PARSE_E;
    if (len + idx > maxIdx)
        return ASN_PARSE_E;
    while (len--) {
        *number  = *number << 8 | input[idx++];
    }
    *inOutIdx = idx;
    return *number;
}
int GetShortInt ( const byte * input , word32 * inOutIdx , int * number , word32 maxIdx ) { word32 idx = * inOutIdx ; word32 len ; byte tag ; * number = 0 ; if ( ( idx + 2 ) > maxIdx ) return BUFFER_E ; if ( GetASNTag ( input , & idx , & tag , maxIdx ) != 0 ) return ASN_PARSE_E ; if ( tag != ASN_INTEGER ) return ASN_PARSE_E ; len = input [ idx ++ ] ; if ( len > 4 ) return ASN_PARSE_E ; if ( len + idx > maxIdx ) return ASN_PARSE_E ; while ( len -- ) { * number = * number << 8 | input [ idx ++ ] ; } * inOutIdx = idx ; return * number ; }
Get small count integer, 32 bits or less
Get small count integer 32 bits or less
/* check for type and length bytes */