Skip to content

Commit

Permalink
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
- Add `signed` multipart subtype
- Add `pgp-signature` application subtype
- Add `application/pgp-signature` type

Closes hyperium#113.
  • Loading branch information
juga authored and Azul committed Jan 14, 2020
1 parent 938484d commit 7634c97
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
20 changes: 20 additions & 0 deletions mime-parse/src/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,16 @@ impl Atoms {
return Atoms::APPLICATION_OCTET_STREAM;
}
}
// 13 => {
// if sub == PGP_ENCRYPTED [
// return Atoms::APPLICATION_PGP_ENCRYPTED;
// ]
// }
// 13 => {
// if sub == PGP_SIGNATURE [
// return Atoms::APPLICATION_PGP_SIGNATURE;
// ]
// }
21 => {
if sub == WWW_FORM_URLENCODED {
return Atoms::APPLICATION_WWW_FORM_URLENCODED;
Expand Down Expand Up @@ -407,12 +417,19 @@ names! {
OCTET_STREAM, "octet-stream";
PDF, "pdf";

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

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

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

// common image/*
BMP, "bmp";
Expand Down Expand Up @@ -466,6 +483,9 @@ 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;
APPLICATION_PGP_SIGNATURE, "application/pgp-signature", 11;

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

// 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 7634c97

Please sign in to comment.