SPM
Boyer–Moore string search algorithm From suricata
How to use
#include "spm_bm.h"
/* init your search content */
BmCtx *bm_ctx = BoyerMooreCtxInit(content, content_len);
/* search sbuf */
uint8_t *found = BoyerMoore(content, content_len, sbuf, sbuflen, bm_ctx);
if (found != NULL) {
printf("found");
}
/* deinit */
BoyerMooreCtxDeInit(bm_ctx);