Skip to content

Commit a8c68d2

Browse files
author
juga
committed
wip: Add security multiparts for MIME (RFC 1847)
- Add `encrypted` multipart subtype - Add `pgp-encrypted` application subtype - Add `application/pgp-encrypted` type Closes #113.
1 parent 65ea9c3 commit a8c68d2

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

mime-parse/src/constants.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,11 @@ impl Atoms {
331331
return Atoms::APPLICATION_OCTET_STREAM;
332332
}
333333
}
334+
// 13 => {
335+
// if sub == PGP_ENCRYPTED [
336+
// return Atoms::APPLICATION_PGP_ENCRYPTED;
337+
// ]
338+
// }
334339
21 => {
335340
if sub == WWW_FORM_URLENCODED {
336341
return Atoms::APPLICATION_WWW_FORM_URLENCODED;
@@ -407,12 +412,17 @@ names! {
407412
OCTET_STREAM, "octet-stream";
408413
PDF, "pdf";
409414

415+
// Security Multiparts for MIME (RFC 1847)
416+
PGP_ENCRYPTED, "pgp-encrypted";
417+
410418
// common font/*
411419
WOFF, "woff";
412420
WOFF2, "woff2";
413421

414422
// multipart/*
415423
FORM_DATA, "form-data";
424+
// Security Multiparts for MIME (RFC 1847)
425+
ENCRYPTED, "encrypted";
416426

417427
// common image/*
418428
BMP, "bmp";
@@ -466,6 +476,8 @@ mimes! {
466476
APPLICATION_MSGPACK, "application/msgpack", 11;
467477
APPLICATION_PDF, "application/pdf", 11;
468478
APPLICATION_DNS, "application/dns-message", 11;
479+
// Security Multiparts for MIME (RFC 1847)
480+
APPLICATION_PGP_ENCRYPTED, "application/pgp-encrypted", 11;
469481

470482
// media-ranges
471483
//@ MediaRange:

src/constants.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ mimes! {
109109
APPLICATION_MSGPACK, "application/msgpack";
110110
APPLICATION_PDF, "application/pdf";
111111
APPLICATION_DNS, "application/dns-message";
112+
APPLICATION_PGP_ENCRYPTED, "application/pgp-encrypted";
112113

113114
// media-ranges
114115
@ MediaRange:

src/macros.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,16 @@ mod tests {
121121
assert_eq!(mt.param("boundary").unwrap(), "AbCd");
122122
}
123123

124+
#[test]
125+
fn multipart_type_two_param() {
126+
let me = media_type!("multipart/encrypted; protocol=\"application/pgp-encrypted\"; boundary=\"jtjy1\"");
127+
assert_eq!(me.type(), MULTIPART);
128+
assert_eq!(me.subtype(, ENCRYPTED);
129+
assert_eq!(me.param("boundary").unwrap(), "jtjy1");
130+
assert_eq!(me.param("protocol").unwrap(), APPPLICATION_PGP_ENCRYTPED);
131+
}
132+
133+
124134
#[test]
125135
fn media_type_lowercase() {
126136
let mt = media_type!("MULTIPART/FORM-DATA; BOUNDARY=AbCd");

0 commit comments

Comments
 (0)