aboutsummaryrefslogtreecommitdiff
path: root/openssl
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2018-02-13 17:25:16 -0800
committerGitHub <[email protected]>2018-02-13 17:25:16 -0800
commit41598534b6b1119aaa3f81ccdd91d784b4d88bfc (patch)
tree78c2e245583cdfedf473907fee1ef4157afe0e8b /openssl
parentRelease openssl 0.10.3 and openssl-sys 0.9.25 (diff)
parentAdded binding for PEM_read_bio_RSAPublicKey (diff)
downloadrust-openssl-41598534b6b1119aaa3f81ccdd91d784b4d88bfc.tar.xz
rust-openssl-41598534b6b1119aaa3f81ccdd91d784b4d88bfc.zip
Merge pull request #838 from olehermanse/master
Added binding for PEM_read_bio_RSAPublicKey
Diffstat (limited to 'openssl')
-rw-r--r--openssl/src/rsa.rs27
-rw-r--r--openssl/test/pkcs1.pem.pub8
2 files changed, 35 insertions, 0 deletions
diff --git a/openssl/src/rsa.rs b/openssl/src/rsa.rs
index 472ca94f..dfa56d70 100644
--- a/openssl/src/rsa.rs
+++ b/openssl/src/rsa.rs
@@ -428,6 +428,19 @@ impl Rsa<Public> {
ffi::PEM_read_bio_RSA_PUBKEY
}
+ from_pem! {
+ /// Decodes a PEM-encoded PKCS#1 RSAPublicKey structure.
+ ///
+ /// The input should have a header of `-----BEGIN RSA PUBLIC KEY-----`.
+ ///
+ /// This corresponds to [`PEM_read_bio_RSAPublicKey`].
+ ///
+ /// [`PEM_read_bio_RSAPublicKey`]: https://www.openssl.org/docs/man1.0.2/crypto/PEM_read_bio_RSAPublicKey.html
+ public_key_from_pem_pkcs1,
+ Rsa<Public>,
+ ffi::PEM_read_bio_RSAPublicKey
+ }
+
from_der! {
/// Decodes a DER-encoded SubjectPublicKeyInfo structure containing an RSA key.
///
@@ -732,4 +745,18 @@ mod test {
.unwrap();
assert_eq!(msg, &dmesg[..len]);
}
+
+ #[test]
+ fn test_public_key_from_pem_pkcs1() {
+ let key = include_bytes!("../test/pkcs1.pem.pub");
+ Rsa::public_key_from_pem_pkcs1(key).unwrap();
+ }
+
+ #[test]
+ #[should_panic]
+ fn test_public_key_from_pem_pkcs1_panic() {
+ let key = include_bytes!("../test/key.pem.pub");
+ Rsa::public_key_from_pem_pkcs1(key).unwrap();
+ }
+
}
diff --git a/openssl/test/pkcs1.pem.pub b/openssl/test/pkcs1.pem.pub
new file mode 100644
index 00000000..4d557048
--- /dev/null
+++ b/openssl/test/pkcs1.pem.pub
@@ -0,0 +1,8 @@
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAyrcf7lv42BCoiDd3LYmF8eaGO4rhmGzGgi+NSZowkEuLhibHGQle
+FkZC7h1VKsxKFgy7Fx+GYHkv9OLm9H5fdp3HhYlo19bZVGvSJ66OJe/Bc4S02bBb
+Y8vwpc/N5O77m5J/nHLuL7XJtpfSKkX+3NPiX1X2L99iipt7F0a7hNws3G3Lxg6t
+P3Yc55TPjXzXvDIgjt/fag6iF8L/bR3augJJdDhLzNucR8A5HcvPtIVo51R631Zq
+MCh+dZvgz9zGCXwsvSky/iOJTHN3wnpsWuCAzS1iJMfjR783Tfv6sWFs19FH7pHP
+xBA3b2enPM9KBzINGOly0eM4h0fh+VBltQIDAQAB
+-----END RSA PUBLIC KEY-----