mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-24 14:44:20 +00:00
113 lines
3.5 KiB
Rust
113 lines
3.5 KiB
Rust
//! PEM decoding tests
|
|
|
|
#[test]
|
|
fn pkcs1_example() {
|
|
let pem = include_bytes!("examples/pkcs1.pem");
|
|
let mut buf = [0u8; 2048];
|
|
let (label, decoded) = pem_rfc7468::decode(pem, &mut buf).unwrap();
|
|
assert_eq!(label, "RSA PRIVATE KEY");
|
|
assert_eq!(decoded, include_bytes!("examples/pkcs1.der"));
|
|
}
|
|
|
|
#[test]
|
|
fn binary_example() {
|
|
let der = include_bytes!("examples/pkcs1.der");
|
|
let mut buf = [0u8; 2048];
|
|
match pem_rfc7468::decode(der, &mut buf) {
|
|
Err(pem_rfc7468::Error::Preamble) => (),
|
|
_ => panic!("Expected Preamble error"),
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn pkcs1_example_with_preceeding_junk() {
|
|
let pem = include_bytes!("examples/pkcs1_with_preceeding_junk.pem");
|
|
let mut buf = [0u8; 2048];
|
|
let (label, decoded) = pem_rfc7468::decode(pem, &mut buf).unwrap();
|
|
assert_eq!(label, "RSA PRIVATE KEY");
|
|
assert_eq!(decoded, include_bytes!("examples/pkcs1.der"));
|
|
}
|
|
|
|
#[test]
|
|
fn pkcs1_enc_example() {
|
|
let pem = include_bytes!("examples/ssh_rsa_pem_password.pem");
|
|
let mut buf = [0u8; 2048];
|
|
let result = pem_rfc7468::decode(pem, &mut buf);
|
|
assert_eq!(result, Err(pem_rfc7468::Error::HeaderDisallowed));
|
|
|
|
let label = pem_rfc7468::decode_label(pem).unwrap();
|
|
assert_eq!(label, "RSA PRIVATE KEY");
|
|
}
|
|
|
|
#[test]
|
|
#[cfg(feature = "alloc")]
|
|
fn pkcs1_enc_example_with_vec() {
|
|
let pem = include_bytes!("examples/ssh_rsa_pem_password.pem");
|
|
let result = pem_rfc7468::decode_vec(pem);
|
|
assert_eq!(result, Err(pem_rfc7468::Error::HeaderDisallowed));
|
|
}
|
|
|
|
#[test]
|
|
fn header_of_length_64() {
|
|
let pem = include_bytes!("examples/chosen_header.pem");
|
|
let mut buf = [0u8; 2048];
|
|
let result = pem_rfc7468::decode(pem, &mut buf);
|
|
assert_eq!(result, Err(pem_rfc7468::Error::HeaderDisallowed));
|
|
|
|
let label = pem_rfc7468::decode_label(pem).unwrap();
|
|
assert_eq!(label, "RSA PRIVATE KEY");
|
|
}
|
|
|
|
#[test]
|
|
#[cfg(feature = "alloc")]
|
|
fn header_of_length_64_with_vec() {
|
|
let pem = include_bytes!("examples/chosen_header.pem");
|
|
match pem_rfc7468::decode_vec(pem) {
|
|
Err(pem_rfc7468::Error::HeaderDisallowed) => (),
|
|
res => panic!("Expected HeaderDisallowed error; Found {:?}", res),
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn pkcs8_example() {
|
|
let pem = include_bytes!("examples/pkcs8.pem");
|
|
let mut buf = [0u8; 2048];
|
|
let (label, decoded) = pem_rfc7468::decode(pem, &mut buf).unwrap();
|
|
assert_eq!(label, "PRIVATE KEY");
|
|
assert_eq!(decoded, include_bytes!("examples/pkcs8.der"));
|
|
}
|
|
|
|
#[test]
|
|
fn pkcs8_enc_example() {
|
|
let pem = include_bytes!("examples/pkcs8-enc.pem");
|
|
let mut buf = [0u8; 2048];
|
|
let (label, decoded) = pem_rfc7468::decode(pem, &mut buf).unwrap();
|
|
assert_eq!(label, "ENCRYPTED PRIVATE KEY");
|
|
assert_eq!(decoded, include_bytes!("examples/pkcs8-enc.der"));
|
|
}
|
|
|
|
#[test]
|
|
#[cfg(feature = "alloc")]
|
|
fn pkcs1_example_with_vec() {
|
|
let pem = include_bytes!("examples/pkcs1.pem");
|
|
let (label, decoded) = pem_rfc7468::decode_vec(pem).unwrap();
|
|
assert_eq!(label, "RSA PRIVATE KEY");
|
|
assert_eq!(decoded, include_bytes!("examples/pkcs1.der"));
|
|
}
|
|
|
|
#[test]
|
|
#[cfg(feature = "alloc")]
|
|
fn pkcs8_enc_example_with_vec() {
|
|
let pem = include_bytes!("examples/pkcs8-enc.pem");
|
|
let (label, decoded) = pem_rfc7468::decode_vec(pem).unwrap();
|
|
assert_eq!(label, "ENCRYPTED PRIVATE KEY");
|
|
assert_eq!(decoded, include_bytes!("examples/pkcs8-enc.der"));
|
|
}
|
|
|
|
#[test]
|
|
fn ed25519_example() {
|
|
let pem = include_bytes!("examples/ed25519_id.pem");
|
|
let label = pem_rfc7468::decode_label(pem).unwrap();
|
|
assert_eq!(label, "ED25519 CERT");
|
|
}
|