Struct der::asn1::UIntBytes

source ·
pub struct UIntBytes<'a> { /* private fields */ }
Expand description

“Big” unsigned ASN.1 INTEGER type.

Provides direct access to the underlying big endian bytes which comprise an unsigned integer value.

Intended for use cases like very large integers that are used in cryptographic applications (e.g. keys, signatures).

Implementations§

source§

impl<'a> UIntBytes<'a>

source

pub fn new(bytes: &'a [u8]) -> Result<Self>

Create a new UIntBytes from a byte slice.

source

pub fn as_bytes(&self) -> &'a [u8]

Borrow the inner byte slice which contains the least significant bytes of a big endian integer value with all leading zeros stripped.

source

pub fn len(&self) -> Length

Get the length of this UIntBytes in bytes.

source

pub fn is_empty(&self) -> bool

Is the inner byte slice empty?

Trait Implementations§

source§

impl<'a> Clone for UIntBytes<'a>

source§

fn clone(&self) -> UIntBytes<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for UIntBytes<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> DecodeValue<'a> for UIntBytes<'a>

source§

fn decode_value(decoder: &mut Decoder<'a>, length: Length) -> Result<Self>

Attempt to decode this message using the provided Decoder.
source§

impl<'a> EncodeValue for UIntBytes<'a>

source§

fn value_len(&self) -> Result<Length>

Compute the length of this value (sans Tag+Length header) when encoded as ASN.1 DER.
source§

fn encode_value(&self, encoder: &mut Encoder<'_>) -> Result<()>

Encode value (sans Tag+Length header) as ASN.1 DER using the provided Encoder.
source§

fn header(&self) -> Result<Header>
where Self: Tagged,

Get the Header used to encode this value.
source§

impl<'a> FixedTag for UIntBytes<'a>

source§

const TAG: Tag = Tag::Integer

ASN.1 tag
source§

impl<'a> From<&UIntBytes<'a>> for UIntBytes<'a>

source§

fn from(value: &UIntBytes<'a>) -> UIntBytes<'a>

Converts to this type from the input type.
source§

impl<'a> PartialEq for UIntBytes<'a>

source§

fn eq(&self, other: &UIntBytes<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a> PartialOrd for UIntBytes<'a>

source§

fn partial_cmp(&self, other: &UIntBytes<'a>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<'a> TryFrom<Any<'a>> for UIntBytes<'a>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(any: Any<'a>) -> Result<UIntBytes<'a>>

Performs the conversion.
source§

impl<'a> Copy for UIntBytes<'a>

source§

impl<'a> Eq for UIntBytes<'a>

source§

impl<'a> StructuralPartialEq for UIntBytes<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for UIntBytes<'a>

§

impl<'a> RefUnwindSafe for UIntBytes<'a>

§

impl<'a> Send for UIntBytes<'a>

§

impl<'a> Sync for UIntBytes<'a>

§

impl<'a> Unpin for UIntBytes<'a>

§

impl<'a> UnwindSafe for UIntBytes<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<'a, T> Choice<'a> for T
where T: Decodable<'a> + FixedTag,

source§

fn can_decode(tag: Tag) -> bool

Is the provided Tag decodable as a variant of this CHOICE?
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<'a, T> Decodable<'a> for T
where T: DecodeValue<'a> + FixedTag,

source§

fn decode(decoder: &mut Decoder<'a>) -> Result<T, Error>

Attempt to decode this message using the provided decoder.
source§

fn from_der(bytes: &'a [u8]) -> Result<Self>

Parse Self from the provided DER-encoded byte slice.
source§

impl<T> Encodable for T
where T: EncodeValue + Tagged,

source§

fn encoded_len(&self) -> Result<Length, Error>

Compute the length of this value in bytes when encoded as ASN.1 DER.

source§

fn encode(&self, encoder: &mut Encoder<'_>) -> Result<(), Error>

Encode this value as ASN.1 DER using the provided Encoder.

source§

fn encode_to_slice<'a>(&self, buf: &'a mut [u8]) -> Result<&'a [u8]>

Encode this value to the provided byte slice, returning a sub-slice containing the encoded message.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Tagged for T
where T: FixedTag,

source§

fn tag(&self) -> Tag

Get the ASN.1 tag that this type is encoded with.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.