27 static int g_mime_email_from_buffer_id = 0;
28 static int g_mime_email_subject_buffer_id = 0;
29 static int g_mime_email_to_buffer_id = 0;
30 static int g_mime_email_cc_buffer_id = 0;
31 static int g_mime_email_date_buffer_id = 0;
32 static int g_mime_email_message_id_buffer_id = 0;
33 static int g_mime_email_x_mailer_buffer_id = 0;
34 static int g_mime_email_url_buffer_id = 0;
35 static int g_mime_email_received_buffer_id = 0;
36 static int g_mime_email_body_md5_buffer_id = 0;
49 static bool GetMimeEmailFromData(
50 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
55 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"from") == 1);
69 static bool GetMimeEmailSubjectData(
70 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
75 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"subject") == 1);
89 static bool GetMimeEmailToData(
90 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
95 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"to") == 1);
109 static bool GetMimeEmailCcData(
110 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
115 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"cc") == 1);
129 static bool GetMimeEmailDateData(
130 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
135 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"date") == 1);
149 static bool GetMimeEmailMessageIdData(
150 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
155 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"message-id") == 1);
169 static bool GetMimeEmailXMailerData(
170 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
175 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"x-mailer") == 1);
190 const uint8_t
flags, uint32_t idx,
const uint8_t **buf, uint32_t *buf_len)
197 return SCDetectMimeEmailGetUrl(tx->
mime_state, buf, buf_len, idx) == 1;
212 const uint8_t
flags, uint32_t idx,
const uint8_t **buf, uint32_t *buf_len)
220 return SCDetectMimeEmailGetDataArray(tx->
mime_state, buf, buf_len,
"received", idx) == 1;
233 if (!MimeBodyMd5IsEnabled()) {
235 SCMimeSmtpConfigBodyMd5(
true);
241 static bool GetMimeEmailBodyMd5Data(
242 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
248 SCDetectMimeEmailGetBodyMd5(tx->
mime_state, data, data_len);
257 kw.
name =
"email.from";
258 kw.
desc =
"'From' field from an email";
259 kw.
url =
"/rules/email-keywords.html#email-from";
260 kw.
Setup = DetectMimeEmailFromSetup;
263 g_mime_email_from_buffer_id =
267 kw.
name =
"email.subject";
268 kw.
desc =
"'Subject' field from an email";
269 kw.
url =
"/rules/email-keywords.html#email-subject";
270 kw.
Setup = DetectMimeEmailSubjectSetup;
273 g_mime_email_subject_buffer_id =
277 kw.
name =
"email.to";
278 kw.
desc =
"'To' field from an email";
279 kw.
url =
"/rules/email-keywords.html#email-to";
280 kw.
Setup = DetectMimeEmailToSetup;
286 kw.
name =
"email.cc";
287 kw.
desc =
"'Cc' field from an email";
288 kw.
url =
"/rules/email-keywords.html#email-cc";
289 kw.
Setup = DetectMimeEmailCcSetup;
295 kw.
name =
"email.date";
296 kw.
desc =
"'Date' field from an email";
297 kw.
url =
"/rules/email-keywords.html#email-date";
298 kw.
Setup = DetectMimeEmailDateSetup;
301 g_mime_email_date_buffer_id =
305 kw.
name =
"email.message_id";
306 kw.
desc =
"'Message-Id' field from an email";
307 kw.
url =
"/rules/email-keywords.html#email-message-id";
308 kw.
Setup = DetectMimeEmailMessageIdSetup;
311 g_mime_email_message_id_buffer_id =
315 kw.
name =
"email.x_mailer";
316 kw.
desc =
"'X-Mailer' field from an email";
317 kw.
url =
"/rules/email-keywords.html#email-x-mailer";
318 kw.
Setup = DetectMimeEmailXMailerSetup;
321 g_mime_email_x_mailer_buffer_id =
325 kw.
name =
"email.url";
326 kw.
desc =
"'Url' extracted from an email";
327 kw.
url =
"/rules/email-keywords.html#email-url";
328 kw.
Setup = DetectMimeEmailUrlSetup;
331 g_mime_email_url_buffer_id =
335 kw.
name =
"email.received";
336 kw.
desc =
"'Received' field from an email";
337 kw.
url =
"/rules/email-keywords.html#email-received";
338 kw.
Setup = DetectMimeEmailReceivedSetup;
341 g_mime_email_received_buffer_id =
345 if (!MimeBodyMd5IsDisabled()) {
347 kw.
name =
"email.body_md5";
348 kw.
desc =
"'md5' hash generated from an email body";
349 kw.
url =
"/rules/email-keywords.html#email-body-md5";
350 kw.
Setup = DetectMimeEmailBodyMd5Setup;
353 g_mime_email_body_md5_buffer_id =