Skip to content

Commit 5a0e2bf

Browse files
audunhallanddjc
authored andcommitted
refactor: Generalize csr/crl signed_by to take &impl AsRef issuer
This makes these consistent with Certificate::signed_by.
1 parent cd88a39 commit 5a0e2bf

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

rcgen/src/certificate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ impl CertificateParams {
157157
pub fn signed_by(
158158
self,
159159
public_key: &impl PublicKeyData,
160-
issuer: &impl AsRef<Self>,
160+
issuer: &impl AsRef<CertificateParams>,
161161
issuer_key: &KeyPair,
162162
) -> Result<Certificate, Error> {
163163
let issuer = Issuer {

rcgen/src/crl.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use yasna::Tag;
99
use crate::ENCODE_CONFIG;
1010
use crate::{
1111
oid, write_distinguished_name, write_dt_utc_or_generalized,
12-
write_x509_authority_key_identifier, write_x509_extension, Certificate, Error, Issuer,
12+
write_x509_authority_key_identifier, write_x509_extension, CertificateParams, Error, Issuer,
1313
KeyIdMethod, KeyPair, KeyUsagePurpose, SerialNumber,
1414
};
1515

@@ -188,17 +188,17 @@ impl CertificateRevocationListParams {
188188
/// Including a signature from the issuing certificate authority's key.
189189
pub fn signed_by(
190190
self,
191-
issuer: &Certificate,
191+
issuer: &impl AsRef<CertificateParams>,
192192
issuer_key: &KeyPair,
193193
) -> Result<CertificateRevocationList, Error> {
194194
if self.next_update.le(&self.this_update) {
195195
return Err(Error::InvalidCrlNextUpdate);
196196
}
197197

198198
let issuer = Issuer {
199-
distinguished_name: &issuer.params.distinguished_name,
200-
key_identifier_method: &issuer.params.key_identifier_method,
201-
key_usages: &issuer.params.key_usages,
199+
distinguished_name: &issuer.as_ref().distinguished_name,
200+
key_identifier_method: &issuer.as_ref().key_identifier_method,
201+
key_usages: &issuer.as_ref().key_usages,
202202
key_pair: issuer_key,
203203
};
204204

rcgen/src/csr.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ impl CertificateSigningRequestParams {
192192
///
193193
/// The returned certificate will have its issuer field set to the subject of the provided
194194
/// `issuer`, and the authority key identifier extension will be populated using the subject
195-
/// public key of `issuer`. It will be signed by `issuer_key`.
195+
/// public key of `issuer` (typically either a [`CertificateParams`] or
196+
/// [`Certificate`]). It will be signed by `issuer_key`.
196197
///
197198
/// Note that no validation of the `issuer` certificate is performed. Rcgen will not require
198199
/// the certificate to be a CA certificate, or have key usage extensions that allow signing.
@@ -201,13 +202,13 @@ impl CertificateSigningRequestParams {
201202
/// [`Certificate::pem`].
202203
pub fn signed_by(
203204
self,
204-
issuer: &Certificate,
205+
issuer: &impl AsRef<CertificateParams>,
205206
issuer_key: &KeyPair,
206207
) -> Result<Certificate, Error> {
207208
let issuer = Issuer {
208-
distinguished_name: &issuer.params.distinguished_name,
209-
key_identifier_method: &issuer.params.key_identifier_method,
210-
key_usages: &issuer.params.key_usages,
209+
distinguished_name: &issuer.as_ref().distinguished_name,
210+
key_identifier_method: &issuer.as_ref().key_identifier_method,
211+
key_usages: &issuer.as_ref().key_usages,
211212
key_pair: issuer_key,
212213
};
213214

0 commit comments

Comments
 (0)