Skip to content

Commit

Permalink
Replace ConstOid with Oid
Browse files Browse the repository at this point in the history
fixes #71 #125
  • Loading branch information
XAMPPRocky committed Jul 26, 2023
1 parent f253edf commit 38f8001
Show file tree
Hide file tree
Showing 17 changed files with 187 additions and 205 deletions.
3 changes: 1 addition & 2 deletions src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pub use {
any::Any,
constraints::{Constraint, Constraints, Extensible},
instance::InstanceOf,
oid::{ConstOid, ObjectIdentifier, Oid},
oid::{ObjectIdentifier, Oid},
open::Open,
prefix::{Explicit, Implicit},
strings::{
Expand Down Expand Up @@ -219,7 +219,6 @@ asn_type! {
OctetString: OCTET_STRING,
ObjectIdentifier: OBJECT_IDENTIFIER,
Oid: OBJECT_IDENTIFIER,
ConstOid: OBJECT_IDENTIFIER,
BitString: BIT_STRING,
Utf8String: UTF8_STRING,
UtcTime: UTC_TIME,
Expand Down
107 changes: 45 additions & 62 deletions src/types/oid.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,42 +7,6 @@ const fn is_valid_oid(slice: &[u32]) -> bool {
slice.len() >= 2 && slice[0] <= MAX_OID_FIRST_OCTET
}

/// A temporary workaround for [`Oid`] not currently being `const` compatible.
#[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, PartialOrd, Ord)]
pub struct ConstOid(pub &'static [u32]);

impl AsRef<[u32]> for ConstOid {
fn as_ref(&self) -> &[u32] {
self.0
}
}

impl ops::Deref for ConstOid {
type Target = [u32];

fn deref(&self) -> &Self::Target {
self.0
}
}

impl AsRef<Oid> for ConstOid {
fn as_ref(&self) -> &Oid {
Oid::new_unchecked(self.0)
}
}

impl PartialEq<[u32]> for ConstOid {
fn eq(&self, rhs: &[u32]) -> bool {
self.0 == rhs
}
}

impl PartialEq<Oid> for ConstOid {
fn eq(&self, rhs: &Oid) -> bool {
*self.0 == rhs.0
}
}

/// A reference to a global unique identifier that identifies an concept, such
/// as a organisation, or encoding rules.
#[derive(Debug, Eq, Hash, PartialEq, PartialOrd, Ord)]
Expand All @@ -59,14 +23,25 @@ impl Oid {
///
/// let internet = Oid::new(&[1, 3, 6, 1]).unwrap();
/// ```
pub fn new(slice: &[u32]) -> Option<&Oid> {
pub const fn new(slice: &[u32]) -> Option<&Self> {
if is_valid_oid(slice) {
Some(Self::new_unchecked(slice))
} else {
None
}
}

/// Creates a new reference to a object identifier from `slice`.
///
/// Panics if `vec` contains less than two components or the first
/// component is greater than 1.
pub const fn const_new(oid: &'static [u32]) -> &'static Self {
match Self::new(oid) {
Some(oid) => oid,
None => panic!("not a valid OID"),
}
}

/// Creates a new mutable reference to a object identifier from `slice`.
///
/// Returns `None` if `vec` contains less than two components or the first
Expand All @@ -76,7 +51,7 @@ impl Oid {
///
/// let internet = Oid::new(&[1, 3, 6, 1]).unwrap();
/// ```
pub fn new_mut(slice: &mut [u32]) -> Option<&mut Oid> {
pub fn new_mut(slice: &mut [u32]) -> Option<&mut Self> {
if is_valid_oid(slice) {
Some(Self::new_unchecked_mut(slice))
} else {
Expand All @@ -89,17 +64,17 @@ impl Oid {
/// # Safety
/// This allows you to create potentially invalid object identifiers which
/// may affect encoding validity.
pub fn new_unchecked(slice: &[u32]) -> &Oid {
unsafe { &*(slice as *const [u32] as *const Oid) }
pub const fn new_unchecked(slice: &[u32]) -> &Self {
unsafe { &*(slice as *const [u32] as *const Self) }
}

/// Creates a new object identifier from `slice`.
///
/// # Safety
/// This allows you to create potentially invalid object identifiers which
/// may affect encoding validity.
pub fn new_unchecked_mut(slice: &mut [u32]) -> &mut Oid {
unsafe { &mut *(slice as *mut [u32] as *mut Oid) }
pub fn new_unchecked_mut(slice: &mut [u32]) -> &mut Self {
unsafe { &mut *(slice as *mut [u32] as *mut Self) }
}
}

Expand Down Expand Up @@ -135,6 +110,24 @@ impl PartialEq<Oid> for [u32] {
}
}

impl PartialEq<Oid> for ObjectIdentifier {
fn eq(&self, rhs: &Oid) -> bool {
*self.0 == rhs.0
}
}

impl PartialEq<&Oid> for ObjectIdentifier {
fn eq(&self, rhs: &&Oid) -> bool {
*self.0 == rhs.0
}
}

impl PartialEq<Oid> for &ObjectIdentifier {
fn eq(&self, rhs: &Oid) -> bool {
*self.0 == rhs.0
}
}

impl<const N: usize> PartialEq<Oid> for [u32; N] {
fn eq(&self, rhs: &Oid) -> bool {
self == &rhs.0
Expand Down Expand Up @@ -192,12 +185,6 @@ impl alloc::borrow::Borrow<Oid> for ObjectIdentifier {
}
}

impl From<ConstOid> for ObjectIdentifier {
fn from(oid: ConstOid) -> Self {
Self::new_unchecked(alloc::borrow::ToOwned::to_owned(&*oid).into())
}
}

impl<'a> From<&'a Oid> for ObjectIdentifier {
fn from(oid: &'a Oid) -> Self {
alloc::borrow::ToOwned::to_owned(oid)
Expand Down Expand Up @@ -226,19 +213,13 @@ impl<const N: usize> PartialEq<ObjectIdentifier> for [u32; N] {

impl PartialEq<ObjectIdentifier> for Oid {
fn eq(&self, rhs: &ObjectIdentifier) -> bool {
self == &**rhs
self.0 == *rhs.0
}
}

impl PartialEq<ConstOid> for ObjectIdentifier {
fn eq(&self, rhs: &ConstOid) -> bool {
self == &**rhs
}
}

impl PartialEq<ObjectIdentifier> for ConstOid {
impl PartialEq<ObjectIdentifier> for &Oid {
fn eq(&self, rhs: &ObjectIdentifier) -> bool {
self == &**rhs
self.0 == *rhs.0
}
}

Expand All @@ -252,7 +233,7 @@ macro_rules! oids {
($($name:ident => $($num:literal),+ $(,)?);+ $(;)?) => {
impl Oid {
$(
pub const $name: ConstOid = ConstOid(&[$($num),+]);
pub const $name: &'static Oid = Oid::const_new(&[$($num),+]);
)+
}
}
Expand Down Expand Up @@ -654,16 +635,18 @@ mod test {
}

#[test]
fn equals() {
fn partial_eq() {
let oid =
ObjectIdentifier::new_unchecked(alloc::vec![2, 16, 840, 1, 101, 3, 4, 2, 3].into());
assert_eq!(
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_HASH_SHA512,
oid
);
assert!(
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_HASH_SHA512
== oid
assert_eq!(
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_HASH_SHA512,
oid
);
assert_eq!(ObjectIdentifier::new(vec![1, 2]).unwrap(), Oid::ISO_MEMBER_BODY);
assert_eq!(Oid::ISO_MEMBER_BODY, ObjectIdentifier::new(vec![1, 2]).unwrap());
}
}
52 changes: 26 additions & 26 deletions standards/cms/src/algorithms.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,39 @@ use rasn::prelude::*;

use rasn_pkix::AlgorithmIdentifier;

pub const SHA1: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_OIW_SECSIG_ALGORITHM_SHA1;
pub const MD5: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_DIGEST_ALGORITHM_MD5;
pub const DSA: ConstOid = Oid::ISO_MEMBER_BODY_US_X957_X9CM_DSA;
pub const DSA_WITH_SHA1: ConstOid = Oid::ISO_MEMBER_BODY_US_X957_X9CM_DSA_SHA1;
pub const RSA: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS1_RSA;
pub const MD5_WITH_RSA: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS1_MD5_RSA;
pub const SHA1_WITH_RSA: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS1_SHA1_RSA;
pub const PUBLIC_NUMBER: ConstOid = Oid::ISO_MEMBER_BODY_US_ANSI_X942_NUMBER_TYPE_PUBLIC;

pub const ESDH: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_ALGORITHM_ESDH;
pub const SSDH: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_ALGORITHM_SSDH;
pub const CMS3DESWRAP: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_ALGORITHM_CMS3DESWRAP;
pub const CMS3RC2WRAP: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_ALGORITHM_CMS3RC2WRAP;

pub const DES_EDE3_CBC: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_ENCRYPTION_ALGORITHM_DES_EDE3_CBC;
pub const RC2_CBC: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_ENCRYPTION_ALGORITHM_RC2_CBC;

pub const HMAC_SHA1: ConstOid =
pub const SHA1: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_OIW_SECSIG_ALGORITHM_SHA1;
pub const MD5: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_DIGEST_ALGORITHM_MD5;
pub const DSA: &'static Oid = Oid::ISO_MEMBER_BODY_US_X957_X9CM_DSA;
pub const DSA_WITH_SHA1: &'static Oid = Oid::ISO_MEMBER_BODY_US_X957_X9CM_DSA_SHA1;
pub const RSA: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS1_RSA;
pub const MD5_WITH_RSA: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS1_MD5_RSA;
pub const SHA1_WITH_RSA: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS1_SHA1_RSA;
pub const PUBLIC_NUMBER: &'static Oid = Oid::ISO_MEMBER_BODY_US_ANSI_X942_NUMBER_TYPE_PUBLIC;

pub const ESDH: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_ALGORITHM_ESDH;
pub const SSDH: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_ALGORITHM_SSDH;
pub const CMS3DESWRAP: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_ALGORITHM_CMS3DESWRAP;
pub const CMS3RC2WRAP: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_ALGORITHM_CMS3RC2WRAP;

pub const DES_EDE3_CBC: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_ENCRYPTION_ALGORITHM_DES_EDE3_CBC;
pub const RC2_CBC: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_ENCRYPTION_ALGORITHM_RC2_CBC;

pub const HMAC_SHA1: &'static Oid =
Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_SECURITY_MECHANISMS_HMAC_SHA1;
pub const PBKDF2: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS5_PBKDF2;
pub const PBKDF2: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS5_PBKDF2;

pub const AES: ConstOid = Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_AES;
pub const AES128_CBC: ConstOid =
pub const AES: &'static Oid = Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_AES;
pub const AES128_CBC: &'static Oid =
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_AES128_CBC;
pub const AES128_WRAP: ConstOid =
pub const AES128_WRAP: &'static Oid =
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_AES128_WRAP;
pub const AES192_CBC: ConstOid =
pub const AES192_CBC: &'static Oid =
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_AES192_CBC;
pub const AES192_WRAP: ConstOid =
pub const AES192_WRAP: &'static Oid =
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_AES192_WRAP;
pub const AES256_CBC: ConstOid =
pub const AES256_CBC: &'static Oid =
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_AES256_CBC;
pub const AES256_WRAP: ConstOid =
pub const AES256_WRAP: &'static Oid =
Oid::JOINT_ISO_ITU_T_COUNTRY_US_ORGANIZATION_GOV_CSOR_NIST_ALGORITHMS_AES256_WRAP;

pub type DssPubKey = Integer;
Expand Down
24 changes: 12 additions & 12 deletions standards/cms/src/authenticode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,24 @@
use core::ops::{BitAnd, BitAndAssign, BitOr, BitOrAssign, Neg};

use rasn::types::{
Any, BitString, BmpString, ConstOid, Ia5String, ObjectIdentifier, OctetString, Oid,
Any, BitString, BmpString, Ia5String, ObjectIdentifier, OctetString, Oid,
};
use rasn::{AsnType, Decode, Encode};
use rasn_pkix::AlgorithmIdentifier;

pub const SPC_INDIRECT_DATA_OBJID: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_INDIRECT_DATA_OBJID;
pub const SPC_PE_IMAGE_DATA_OBJID: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_PE_IMAGE_DATA_OBJID;
pub const SPC_SP_OPUS_INFO_OBJID: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_SP_OPUS_INFO_OBJID;
pub const SPC_STATEMENT_TYPE_OBJID: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_STATEMENT_TYPE_OBJID;
pub const SPC_CAB_DATA_OBJID: ConstOid =
pub const SPC_INDIRECT_DATA_OBJID: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_INDIRECT_DATA_OBJID;
pub const SPC_PE_IMAGE_DATA_OBJID: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_PE_IMAGE_DATA_OBJID;
pub const SPC_SP_OPUS_INFO_OBJID: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_SP_OPUS_INFO_OBJID;
pub const SPC_STATEMENT_TYPE_OBJID: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_STATEMENT_TYPE_OBJID;
pub const SPC_CAB_DATA_OBJID: &'static Oid =
Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_CAB_DATA_OBJID;
pub const SPC_SIPINFO_OBJID: ConstOid =
pub const SPC_SIPINFO_OBJID: &'static Oid =
Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_SIPINFO_OBJID;
pub const SPC_PE_IMAGE_PAGE_HASHES_V1: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_PE_IMAGE_PAGE_HASHES_V1;
pub const SPC_PE_IMAGE_PAGE_HASHES_V2: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_PE_IMAGE_PAGE_HASHES_V2;
pub const SPC_NESTED_SIGNATURE_OBJID: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_NESTED_SIGNATURE_OBJID;
pub const SPC_TIME_STAMP_REQUEST_OBJID: ConstOid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_TIME_STAMP_REQUEST_OBJID;
pub const SPC_RFC3161_OBJID: ConstOid =
pub const SPC_PE_IMAGE_PAGE_HASHES_V1: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_PE_IMAGE_PAGE_HASHES_V1;
pub const SPC_PE_IMAGE_PAGE_HASHES_V2: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_PE_IMAGE_PAGE_HASHES_V2;
pub const SPC_NESTED_SIGNATURE_OBJID: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_NESTED_SIGNATURE_OBJID;
pub const SPC_TIME_STAMP_REQUEST_OBJID: &'static Oid = Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_TIME_STAMP_REQUEST_OBJID;
pub const SPC_RFC3161_OBJID: &'static Oid =
Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_PRIVATE_ENTERPRISES_MICROSOFT_SPC_RFC3161_OBJID;

pub const SPC_CLASS_UUID: OctetString = OctetString::from_static(&[
Expand Down
24 changes: 12 additions & 12 deletions standards/cms/src/firmware_wrapper.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,28 @@ use rasn::prelude::*;

use super::EnvelopedData;

pub const FIRMWARE_PACKAGE: ConstOid =
pub const FIRMWARE_PACKAGE: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_CT_FIRMWARE_PACKAGE;
pub const FIRMWARE_PACKAGE_ID: ConstOid =
pub const FIRMWARE_PACKAGE_ID: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_FIRMWARE_PACKAGE_ID;
pub const DECRYPT_KEY_ID: ConstOid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_DECRYPT_KEY_ID;
pub const CRYPTO_ALGORITHMS: ConstOid =
pub const DECRYPT_KEY_ID: &'static Oid = Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_DECRYPT_KEY_ID;
pub const CRYPTO_ALGORITHMS: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_CRYPTO_ALGORITHMS;
pub const COMPRESS_ALGORITHMS: ConstOid =
pub const COMPRESS_ALGORITHMS: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_COMPRESS_ALGORITHMS;
pub const COMMUNITY_IDENTIFIERS: ConstOid =
pub const COMMUNITY_IDENTIFIERS: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_COMMUNITY_IDENTIFIERS;
pub const FIRMWARE_PACKAGE_INFO: ConstOid =
pub const FIRMWARE_PACKAGE_INFO: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_FIRMWARE_PACKAGE_INFO;
pub const WRAPPED_FIRMWARE_KEY: ConstOid =
pub const WRAPPED_FIRMWARE_KEY: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_WRAPPED_FIRMWARE_KEY;
pub const FIRMWARE_LOAD_RECEIPT: ConstOid =
pub const FIRMWARE_LOAD_RECEIPT: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_CT_FIRMWARE_LOAD_RECEIPT;
pub const FIRMWARE_LOAD_ERROR: ConstOid =
pub const FIRMWARE_LOAD_ERROR: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_CT_FIRMWARE_LOAD_ERROR;
pub const HARDWARE_MODULE_NAME: ConstOid =
pub const HARDWARE_MODULE_NAME: &'static Oid =
Oid::ISO_IDENTIFIED_ORGANISATION_DOD_INTERNET_SECURITY_MECHANISMS_PKIX_ON_HARDWARE_MODULE_NAME;
pub const TARGET_HARDWARE_IDS: ConstOid =
pub const TARGET_HARDWARE_IDS: &'static Oid =
Oid::ISO_MEMBER_BODY_US_RSADSI_PKCS9_SMIME_AA_TARGET_HARDWARE_IDS;

pub type FirmwarePackageData = OctetString;
Expand Down
Loading

0 comments on commit 38f8001

Please sign in to comment.