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;
48 static bool GetMimeEmailFromData(
49 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
54 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"from") == 1);
68 static bool GetMimeEmailSubjectData(
69 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
74 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"subject") == 1);
88 static bool GetMimeEmailToData(
89 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
94 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"to") == 1);
108 static bool GetMimeEmailCcData(
109 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
114 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"cc") == 1);
128 static bool GetMimeEmailDateData(
129 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
134 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"date") == 1);
148 static bool GetMimeEmailMessageIdData(
149 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
154 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"message-id") == 1);
168 static bool GetMimeEmailXMailerData(
169 const void *txv,
const uint8_t _flow_flags,
const uint8_t **data, uint32_t *data_len)
174 return (SCDetectMimeEmailGetData(tx->
mime_state, data, data_len,
"x-mailer") == 1);
189 const uint8_t
flags, uint32_t idx,
const uint8_t **buf, uint32_t *buf_len)
196 if (SCDetectMimeEmailGetUrl(tx->
mime_state, buf, buf_len, idx) != 1) {
214 const uint8_t
flags, uint32_t idx,
const uint8_t **buf, uint32_t *buf_len)
222 if (SCDetectMimeEmailGetDataArray(tx->
mime_state, buf, buf_len,
"received", idx) != 1) {
232 kw.
name =
"email.from";
233 kw.
desc =
"'From' field from an email";
234 kw.
url =
"/rules/email-keywords.html#email.from";
235 kw.
Setup = DetectMimeEmailFromSetup;
239 "email.from",
"MIME EMAIL FROM",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailFromData);
241 kw.
name =
"email.subject";
242 kw.
desc =
"'Subject' field from an email";
243 kw.
url =
"/rules/email-keywords.html#email.subject";
244 kw.
Setup = DetectMimeEmailSubjectSetup;
248 "MIME EMAIL SUBJECT",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailSubjectData);
250 kw.
name =
"email.to";
251 kw.
desc =
"'To' field from an email";
252 kw.
url =
"/rules/email-keywords.html#email.to";
253 kw.
Setup = DetectMimeEmailToSetup;
257 "email.to",
"MIME EMAIL TO",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailToData);
259 kw.
name =
"email.cc";
260 kw.
desc =
"'Cc' field from an email";
261 kw.
url =
"/rules/email-keywords.html#email.cc";
262 kw.
Setup = DetectMimeEmailCcSetup;
266 "email.cc",
"MIME EMAIL CC",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailCcData);
268 kw.
name =
"email.date";
269 kw.
desc =
"'Date' field from an email";
270 kw.
url =
"/rules/email-keywords.html#email.date";
271 kw.
Setup = DetectMimeEmailDateSetup;
275 "email.date",
"MIME EMAIL DATE",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailDateData);
277 kw.
name =
"email.message_id";
278 kw.
desc =
"'Message-Id' field from an email";
279 kw.
url =
"/rules/email-keywords.html#email.message_id";
280 kw.
Setup = DetectMimeEmailMessageIdSetup;
284 "MIME EMAIL Message-Id",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailMessageIdData);
286 kw.
name =
"email.x_mailer";
287 kw.
desc =
"'X-Mailer' field from an email";
288 kw.
url =
"/rules/email-keywords.html#email.x_mailer";
289 kw.
Setup = DetectMimeEmailXMailerSetup;
293 "MIME EMAIL X-Mailer",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailXMailerData);
295 kw.
name =
"email.url";
296 kw.
desc =
"'Url' extracted from an email";
297 kw.
url =
"/rules/email-keywords.html#email.url";
298 kw.
Setup = DetectMimeEmailUrlSetup;
302 "email.url",
"MIME EMAIL URL",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailUrlData);
304 kw.
name =
"email.received";
305 kw.
desc =
"'Received' field from an email";
306 kw.
url =
"/rules/email-keywords.html#email.received";
307 kw.
Setup = DetectMimeEmailReceivedSetup;
311 "MIME EMAIL RECEIVED",
ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailReceivedData);