Skip to content

Commit 919c0e7

Browse files
committed
der: remove lifetime from OctetStringRef
Following the pattern of #1921, removes the lifetime from the struct, instead changing `OctetStringRef` to a proper reference type to be used as `&OctetStringRef`. This makes it possible to `impl Borrow<OctetStringRef> for OctetString` and `impl ToOwned for OctetStringRef`, so they can work with `Cow`.
1 parent 07cc006 commit 919c0e7

File tree

17 files changed

+156
-99
lines changed

17 files changed

+156
-99
lines changed

cms/src/attr.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
//! Attribute-related types
2+
//!
23
use alloc::{boxed::Box, vec};
4+
use core::borrow::Borrow;
35
use der::{
46
DecodeValue, EncodeValue, FixedTag, Length, Tag,
57
asn1::{OctetString, OctetStringRef},
6-
referenced::OwnedToRef,
78
};
8-
99
use x509_cert::time::Time;
1010

1111
use crate::signed_data::SignerInfo;
@@ -50,8 +50,8 @@ impl MessageDigest {
5050

5151
/// Return an [`OctetStringRef`] pointing to the underlying data
5252
#[inline]
53-
pub fn as_octet_string_ref<'a>(&'a self) -> OctetStringRef<'a> {
54-
self.0.owned_to_ref()
53+
pub fn as_octet_string_ref(&self) -> &OctetStringRef {
54+
self.0.borrow()
5555
}
5656
}
5757

cms/src/timestamped_data.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ pub struct TimeStampedData<'a> {
4444
#[asn1(optional = "true")]
4545
pub meta_data: Option<MetaData>,
4646
#[asn1(optional = "true")]
47-
pub content: Option<OctetStringRef<'a>>,
47+
pub content: Option<&'a OctetStringRef>,
4848
pub temporal_evidence: Evidence,
4949
}
5050

cms/tests/builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ fn test_create_password_recipient_info() {
946946
.to_der()
947947
.unwrap();
948948
let iv = Iv::<cbc::Decryptor<Aes128>>::try_from(
949-
OctetStringRef::from_der(algorithm_params_der.as_slice())
949+
<&OctetStringRef>::from_der(algorithm_params_der.as_slice())
950950
.unwrap()
951951
.as_bytes(),
952952
)

cms/tests/tests_from_pkcs7_crate.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ fn cms_decode_signed_der() {
123123
sd.encap_content_info
124124
.econtent
125125
.unwrap()
126-
.decode_as::<OctetStringRef>()
126+
.decode_as::<&OctetStringRef>()
127127
.unwrap()
128128
.as_bytes()
129129
.len(),

der/src/asn1.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ pub use self::{
4444
ia5_string::Ia5StringRef,
4545
integer::{int::IntRef, uint::UintRef},
4646
null::Null,
47-
octet_string::OctetStringRef,
47+
octet_string::{OctetStringRef, OctetStringRef2},
4848
printable_string::PrintableStringRef,
4949
private::{Private, PrivateRef},
5050
sequence::{Sequence, SequenceRef},

0 commit comments

Comments
 (0)