aboutsummaryrefslogtreecommitdiff
path: root/src/anchor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/anchor.rs')
-rw-r--r--src/anchor.rs48
1 files changed, 22 insertions, 26 deletions
diff --git a/src/anchor.rs b/src/anchor.rs
index ad7ef08..bc3a2fb 100644
--- a/src/anchor.rs
+++ b/src/anchor.rs
@@ -4,26 +4,22 @@ use crate::ext::pkix::{certpolicy::CertificatePolicies, NameConstraints};
use crate::{ext::Extensions, name::Name};
use crate::{Certificate, TbsCertificate};
-use der::asn1::{OctetStringRef, Utf8StringRef};
+use alloc::string::String;
+use der::asn1::OctetString;
+use der::flagset::{flags, FlagSet};
use der::{Choice, Enumerated, Sequence};
-use flagset::{flags, FlagSet};
-use spki::SubjectPublicKeyInfo;
+use spki::SubjectPublicKeyInfoOwned;
/// Version identifier for TrustAnchorInfo
-#[derive(Clone, Debug, Copy, PartialEq, Eq, Enumerated)]
+#[derive(Clone, Debug, Default, Copy, PartialEq, Eq, Enumerated)]
#[asn1(type = "INTEGER")]
#[repr(u8)]
pub enum Version {
/// Version 1 (default)
+ #[default]
V1 = 0,
}
-impl Default for Version {
- fn default() -> Self {
- Version::V1
- }
-}
-
/// ```text
/// TrustAnchorInfo ::= SEQUENCE {
/// version TrustAnchorInfoVersion DEFAULT v1,
@@ -41,25 +37,25 @@ impl Default for Version {
/// ```
#[derive(Clone, Debug, PartialEq, Eq, Sequence)]
#[allow(missing_docs)]
-pub struct TrustAnchorInfo<'a> {
+pub struct TrustAnchorInfo {
#[asn1(default = "Default::default")]
pub version: Version,
- pub pub_key: SubjectPublicKeyInfo<'a>,
+ pub pub_key: SubjectPublicKeyInfoOwned,
- pub key_id: OctetStringRef<'a>,
+ pub key_id: OctetString,
#[asn1(optional = "true")]
- pub ta_title: Option<Utf8StringRef<'a>>,
+ pub ta_title: Option<String>,
#[asn1(optional = "true")]
- pub cert_path: Option<CertPathControls<'a>>,
+ pub cert_path: Option<CertPathControls>,
#[asn1(context_specific = "1", tag_mode = "EXPLICIT", optional = "true")]
- pub extensions: Option<Extensions<'a>>,
+ pub extensions: Option<Extensions>,
#[asn1(context_specific = "2", tag_mode = "IMPLICIT", optional = "true")]
- pub ta_title_lang_tag: Option<Utf8StringRef<'a>>,
+ pub ta_title_lang_tag: Option<String>,
}
/// ```text
@@ -74,20 +70,20 @@ pub struct TrustAnchorInfo<'a> {
/// ```
#[derive(Clone, Debug, Eq, PartialEq, Sequence)]
#[allow(missing_docs)]
-pub struct CertPathControls<'a> {
- pub ta_name: Name<'a>,
+pub struct CertPathControls {
+ pub ta_name: Name,
#[asn1(context_specific = "0", tag_mode = "IMPLICIT", optional = "true")]
- pub certificate: Option<Certificate<'a>>,
+ pub certificate: Option<Certificate>,
#[asn1(context_specific = "1", tag_mode = "IMPLICIT", optional = "true")]
- pub policy_set: Option<CertificatePolicies<'a>>,
+ pub policy_set: Option<CertificatePolicies>,
#[asn1(context_specific = "2", tag_mode = "IMPLICIT", optional = "true")]
pub policy_flags: Option<CertPolicyFlags>,
#[asn1(context_specific = "3", tag_mode = "IMPLICIT", optional = "true")]
- pub name_constr: Option<NameConstraints<'a>>,
+ pub name_constr: Option<NameConstraints>,
#[asn1(context_specific = "4", tag_mode = "IMPLICIT", optional = "true")]
pub path_len_constraint: Option<u32>,
@@ -128,12 +124,12 @@ pub type CertPolicyFlags = FlagSet<CertPolicies>;
#[derive(Clone, Debug, PartialEq, Eq, Choice)]
#[allow(clippy::large_enum_variant)]
#[allow(missing_docs)]
-pub enum TrustAnchorChoice<'a> {
- Certificate(Certificate<'a>),
+pub enum TrustAnchorChoice {
+ Certificate(Certificate),
#[asn1(context_specific = "1", tag_mode = "EXPLICIT", constructed = "true")]
- TbsCertificate(TbsCertificate<'a>),
+ TbsCertificate(TbsCertificate),
#[asn1(context_specific = "2", tag_mode = "EXPLICIT", constructed = "true")]
- TaInfo(TrustAnchorInfo<'a>),
+ TaInfo(TrustAnchorInfo),
}