table of contents
byte_starts(3) | Library Functions Manual | byte_starts(3) |
NAME¶
byte_starts - find out if a buffer starts with a string
SYNTAX¶
#include <libowfat/byte.h>
int byte_starts(const char *buf,size_t buflen,const char *str);
DESCRIPTION¶
byte_starts returns 1 if the buflen>=strlen(str) and the first strlen(str) bytes of buf match the contents of str, or 0 otherwise.
This function is meant to be used in protocol parsing and with a string constant for str and will use gcc/clang macro trickery to reduce to a call to memcmp then.
byte_starts compares as few bytes as possible. An attacker observing the execution timing can thus learn where the first mismatch happened.
Use byte_equal_notimingattack to compare keys, passphrases, cookies or hashes instead.