Skip to content

Commit 2a720f6

Browse files
committed
Test from_pkcs8 without new dev dependencies
1 parent 93bf66e commit 2a720f6

File tree

3 files changed

+18
-21
lines changed

3 files changed

+18
-21
lines changed

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,5 @@ openssl-probe = "0.1"
3535
openssl-src = { version = "300.0.3", optional = true }
3636

3737
[dev-dependencies]
38-
pem = "1.0"
39-
rsa = { version = "0.5.0", features = ["alloc", "pem", "std"] }
4038
tempfile = "3.0"
4139
test-cert-gen = "0.7"

src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,6 @@ mod imp;
123123

124124
#[cfg(test)]
125125
mod test;
126-
#[cfg(test)]
127-
extern crate rsa;
128126

129127
/// A typedef of the result-type returned by many methods.
130128
pub type Result<T> = result::Result<T, Error>;

src/test.rs

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ fn import_same_identity_multiple_times() {
351351
));
352352

353353
let cert = keys.server.cert_and_key.cert.to_pem().into_bytes();
354-
let key = rsa_to_pkcs8(&key_to_pem(keys.server.cert_and_key.key.get_der())).into_bytes();
354+
let key = rsa_to_pkcs8(&keys.server.cert_and_key.key.to_pem_incorrect()).into_bytes();
355355
let _ = p!(Identity::from_pkcs8(&cert, &key));
356356
let _ = p!(Identity::from_pkcs8(&cert, &key));
357357
}
@@ -360,7 +360,7 @@ fn import_same_identity_multiple_times() {
360360
fn from_pkcs8_rejects_rsa_key() {
361361
let keys = test_cert_gen::keys();
362362
let cert = keys.server.cert_and_key.cert.to_pem().into_bytes();
363-
let rsa_key = key_to_pem(keys.server.cert_and_key.key.get_der());
363+
let rsa_key = keys.server.cert_and_key.key.to_pem_incorrect();
364364
assert!(Identity::from_pkcs8(&cert, rsa_key.as_bytes()).is_err());
365365
let pkcs8_key = rsa_to_pkcs8(&rsa_key);
366366
assert!(Identity::from_pkcs8(&cert, pkcs8_key.as_bytes()).is_ok());
@@ -439,7 +439,7 @@ fn alpn_google_none() {
439439
fn server_pkcs8() {
440440
let keys = test_cert_gen::keys();
441441
let cert = keys.server.cert_and_key.cert.to_pem().into_bytes();
442-
let key = rsa_to_pkcs8(&key_to_pem(keys.server.cert_and_key.key.get_der())).into_bytes();
442+
let key = rsa_to_pkcs8(&keys.server.cert_and_key.key.to_pem_incorrect()).into_bytes();
443443

444444
let ident = Identity::from_pkcs8(&cert, &key).unwrap();
445445
let ident2 = ident.clone();
@@ -486,7 +486,7 @@ fn server_pkcs8() {
486486
fn two_servers() {
487487
let keys1 = test_cert_gen::gen_keys();
488488
let cert = keys1.server.cert_and_key.cert.to_pem().into_bytes();
489-
let key = rsa_to_pkcs8(&key_to_pem(keys1.server.cert_and_key.key.get_der())).into_bytes();
489+
let key = rsa_to_pkcs8(&keys1.server.cert_and_key.key.to_pem_incorrect()).into_bytes();
490490
let identity = p!(Identity::from_pkcs8(&cert, &key));
491491
let builder = TlsAcceptor::builder(identity);
492492
let builder = p!(builder.build());
@@ -507,7 +507,7 @@ fn two_servers() {
507507

508508
let keys2 = test_cert_gen::gen_keys();
509509
let cert = keys2.server.cert_and_key.cert.to_pem().into_bytes();
510-
let key = rsa_to_pkcs8(&key_to_pem(keys2.server.cert_and_key.key.get_der())).into_bytes();
510+
let key = rsa_to_pkcs8(&keys2.server.cert_and_key.key.to_pem_incorrect()).into_bytes();
511511
let identity = p!(Identity::from_pkcs8(&cert, &key));
512512
let builder = TlsAcceptor::builder(identity);
513513
let builder = p!(builder.build());
@@ -556,17 +556,18 @@ fn two_servers() {
556556
p!(j2.join());
557557
}
558558

559-
fn key_to_pem(der: &[u8]) -> String {
560-
pem::encode(&pem::Pem {
561-
tag: "RSA PRIVATE KEY".to_owned(),
562-
contents: der.to_owned(),
563-
})
564-
}
565-
566559
fn rsa_to_pkcs8(pem: &str) -> String {
567-
use rsa::{pkcs1::FromRsaPrivateKey, pkcs8::ToPrivateKey, RsaPrivateKey};
568-
let pkey = RsaPrivateKey::from_pkcs1_pem(pem).unwrap();
569-
let pkcs8_pem = pkey.to_pkcs8_pem().unwrap();
570-
let pkcs8_pem: &str = pkcs8_pem.as_ref();
571-
pkcs8_pem.to_owned()
560+
let mut child = Command::new("openssl")
561+
.arg("pkcs8")
562+
.arg("-topk8")
563+
.arg("-nocrypt")
564+
.stdin(Stdio::piped())
565+
.stdout(Stdio::piped())
566+
.spawn()
567+
.unwrap();
568+
{
569+
let child_stdin = child.stdin.as_mut().unwrap();
570+
child_stdin.write_all(pem.as_bytes()).unwrap();
571+
}
572+
String::from_utf8(child.wait_with_output().unwrap().stdout).unwrap()
572573
}

0 commit comments

Comments
 (0)