Skip to content

Commit 00040fb

Browse files
rickvanprimest31
authored andcommitted
Expose algorithm field on PublicKey
1 parent dd54046 commit 00040fb

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

rcgen/src/csr.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ pub struct PublicKey {
1919
alg: &'static SignatureAlgorithm,
2020
}
2121

22+
impl PublicKey {
23+
/// The algorithm used to generate the public key and sign the CSR.
24+
pub fn algorithm(&self) -> &SignatureAlgorithm {
25+
self.alg
26+
}
27+
}
28+
2229
impl PublicKeyData for PublicKey {
2330
fn alg(&self) -> &SignatureAlgorithm {
2431
self.alg

rcgen/tests/generic.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -364,13 +364,15 @@ mod test_csr {
364364

365365
#[test]
366366
fn test_csr_roundtrip() {
367+
let key_pair = KeyPair::generate().unwrap();
368+
367369
// We should be able to serialize a CSR, and then parse the CSR.
368-
_ = CertificateSigningRequestParams::from_der(
369-
CertificateParams::default()
370-
.serialize_request(&KeyPair::generate().unwrap())
371-
.unwrap()
372-
.der(),
373-
)
374-
.unwrap();
370+
let csr = CertificateParams::default()
371+
.serialize_request(&key_pair)
372+
.unwrap();
373+
let csrp = CertificateSigningRequestParams::from_der(csr.der()).unwrap();
374+
375+
// Ensure algorithms match.
376+
assert_eq!(key_pair.algorithm(), csrp.public_key.algorithm());
375377
}
376378
}

0 commit comments

Comments
 (0)