From 4c8eee69a5030d2aeb0cc2d7d46c2217b041c522 Mon Sep 17 00:00:00 2001 From: ssebo Date: Thu, 16 Jul 2020 23:25:56 +0800 Subject: [PATCH 1/2] certificate: accept pem format --- quinn-proto/src/crypto/types.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/quinn-proto/src/crypto/types.rs b/quinn-proto/src/crypto/types.rs index 4382b6ce9..72a61134c 100644 --- a/quinn-proto/src/crypto/types.rs +++ b/quinn-proto/src/crypto/types.rs @@ -16,6 +16,17 @@ impl Certificate { }) } + /// Parse a PEM-formatted certificate + pub fn from_pem(pem: &[u8]) -> Result { + let certs = pemfile::certs(&mut &pem[..]) + .map_err(|()| ParseError("invalid pem cert"))?; + if let Some(pem) = certs.into_iter().next() { + return Ok(Self { inner: pem }); + } + + Err(ParseError("no cert found")) + } + /// View the certificate in DER format pub fn as_der(&self) -> &[u8] { &self.inner.0 From c4378e5942f62cd4f14ee8226b831d8f5e79c8cf Mon Sep 17 00:00:00 2001 From: ssebo Date: Sat, 18 Jul 2020 13:30:17 +0800 Subject: [PATCH 2/2] chore: fix format Signed-off-by: ssebo --- quinn-proto/src/crypto/types.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/quinn-proto/src/crypto/types.rs b/quinn-proto/src/crypto/types.rs index 72a61134c..7490f3ed8 100644 --- a/quinn-proto/src/crypto/types.rs +++ b/quinn-proto/src/crypto/types.rs @@ -18,8 +18,7 @@ impl Certificate { /// Parse a PEM-formatted certificate pub fn from_pem(pem: &[u8]) -> Result { - let certs = pemfile::certs(&mut &pem[..]) - .map_err(|()| ParseError("invalid pem cert"))?; + let certs = pemfile::certs(&mut &pem[..]).map_err(|()| ParseError("invalid pem cert"))?; if let Some(pem) = certs.into_iter().next() { return Ok(Self { inner: pem }); }