Skip to content

Commit

Permalink
wip: Add security multiparts for MIME (RFC 1847)
Browse files Browse the repository at this point in the history
- Add `encrypted` multipart subtype
- Add `pgp-encrypted` application subtype
- Add `application/pgp-encrypted` type

Closes hyperium#113.
  • Loading branch information
juga committed Jun 3, 2019
1 parent 65ea9c3 commit a8c68d2
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
12 changes: 12 additions & 0 deletions mime-parse/src/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,11 @@ impl Atoms {
return Atoms::APPLICATION_OCTET_STREAM;
}
}
// 13 => {
// if sub == PGP_ENCRYPTED [
// return Atoms::APPLICATION_PGP_ENCRYPTED;
// ]
// }
21 => {
if sub == WWW_FORM_URLENCODED {
return Atoms::APPLICATION_WWW_FORM_URLENCODED;
Expand Down Expand Up @@ -407,12 +412,17 @@ names! {
OCTET_STREAM, "octet-stream";
PDF, "pdf";

// Security Multiparts for MIME (RFC 1847)
PGP_ENCRYPTED, "pgp-encrypted";

// common font/*
WOFF, "woff";
WOFF2, "woff2";

// multipart/*
FORM_DATA, "form-data";
// Security Multiparts for MIME (RFC 1847)
ENCRYPTED, "encrypted";

// common image/*
BMP, "bmp";
Expand Down Expand Up @@ -466,6 +476,8 @@ mimes! {
APPLICATION_MSGPACK, "application/msgpack", 11;
APPLICATION_PDF, "application/pdf", 11;
APPLICATION_DNS, "application/dns-message", 11;
// Security Multiparts for MIME (RFC 1847)
APPLICATION_PGP_ENCRYPTED, "application/pgp-encrypted", 11;

// media-ranges
//@ MediaRange:
Expand Down
1 change: 1 addition & 0 deletions src/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ mimes! {
APPLICATION_MSGPACK, "application/msgpack";
APPLICATION_PDF, "application/pdf";
APPLICATION_DNS, "application/dns-message";
APPLICATION_PGP_ENCRYPTED, "application/pgp-encrypted";

// media-ranges
@ MediaRange:
Expand Down
10 changes: 10 additions & 0 deletions src/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,16 @@ mod tests {
assert_eq!(mt.param("boundary").unwrap(), "AbCd");
}

#[test]
fn multipart_type_two_param() {
let me = media_type!("multipart/encrypted; protocol=\"application/pgp-encrypted\"; boundary=\"jtjy1\"");
assert_eq!(me.type(), MULTIPART);
assert_eq!(me.subtype(, ENCRYPTED);
assert_eq!(me.param("boundary").unwrap(), "jtjy1");
assert_eq!(me.param("protocol").unwrap(), APPPLICATION_PGP_ENCRYTPED);
}


#[test]
fn media_type_lowercase() {
let mt = media_type!("MULTIPART/FORM-DATA; BOUNDARY=AbCd");
Expand Down

0 comments on commit a8c68d2

Please sign in to comment.