[][src]Struct iso7816_tlv::ber::Tlv

pub struct Tlv { /* fields omitted */ }

BER-TLV structure, following ISO/IEC 7816-4.

BER-TLV data objects

Each BER-TLV data object consists of two or three consecutive fields (see the basic encoding rules of ASN.1 in ISO/IEC 8825-1): a mandatory tag field, a mandatory length field and a conditional value field.

  • The tag field consists of one or more consecutive bytes. It indicates a class and an encoding and it encodes a tag number. The value '00' is invalid for the first byte of tag fields (see ISO/IEC 8825-1).
  • The length field consists of one or more consecutive bytes. It encodes a length, i.e., a number denoted N.
  • If N is zero, there is no value field, i.e., the data object is empty. Otherwise (N > 0), the value field consists of N consecutive bytes.

Methods

impl Tlv[src]

pub fn new(tag: Tag, value: Value) -> Result<Self, TlvError>[src]

Create a BER-TLV data object from valid tag and value Fails with TlvError::Inconsistant if the tag indicates a contructed value (resp. primitive) and the value is primitive (resp. contructed).

pub fn to_vec(&self) -> Vec<u8>[src]

serializes self into a byte vector.

pub fn parse(input: &[u8]) -> (Result<Self, TlvError>, &[u8])[src]

Parses a byte array into a BER-TLV structure. This also returns the unprocessed data.

pub fn from_bytes(input: &[u8]) -> Result<Self, TlvError>[src]

Parses a byte array into a BER-TLV structure. Input must exactly match a BER-TLV object.

Trait Implementations

impl Clone for Tlv[src]

impl PartialEq<Tlv> for Tlv[src]

impl Debug for Tlv[src]

impl Display for Tlv[src]

Auto Trait Implementations

impl Send for Tlv

impl Unpin for Tlv

impl Sync for Tlv

impl UnwindSafe for Tlv

impl RefUnwindSafe for Tlv

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]