Struct bsn1::Der[][src]

pub struct Der { /* fields omitted */ }
Expand description

Der owns DerRef and represents DER.

Implementations

Creates a new instance from id and contents .

Warnings

ASN.1 does not allow some universal identifier for DER, however, this function accepts such an identifier. For example, ‘Octet String’ must be primitive in DER, but this function will construct a new instance even if id represenets constructed ‘Octet String.’

Examples
use bsn1::{Der, IdRef};

let id = IdRef::octet_string();
let contents: &[u8] = &[10, 20, 30];

let der = Der::new(id, contents);

assert_eq!(id, der.id());
assert_eq!(contents, der.contents());

Creates a new instance from id and contents .

Warnings

ASN.1 does not allow some universal identifier for DER, however, this function accepts such an identifier. For example, ‘Octet String’ must be primitive in DER, but this function will construct a new instance even if id represenets constructed ‘Octet String.’

Examples
use bsn1::{Der, IdRef};

let id = IdRef::sequence();

// Build instance using function 'from_id_iterator()'.
let contents: &[Der] = &[Der::utf8_string("foo"), Der::integer(29)];
let der = Der::from_id_iterator(id, contents.iter());

// Build instance using function 'new()'.
let contents: Vec<u8> = contents.iter()
                        .map(|i| Vec::from(i.as_ref() as &[u8]))
                        .flatten().collect();
let expected = Der::new(id, &contents);

assert_eq!(expected, der);

Returns a new instance representing boolean.

Examples
use bsn1::{contents, Der, IdRef};

let val = true;
let der = Der::boolean(val);

assert_eq!(IdRef::boolean(), der.id());
assert_eq!(val, contents::to_bool_der(der.contents()).unwrap());

Returns a new instance representing integer.

Type T should be the builtin primitive integer types (e.g., u8, u32, isize, i128, …)

Examples
use bsn1::{contents, Der, IdRef};

let val = 39;
let der = Der::integer(val);

assert_eq!(IdRef::integer(), der.id());
assert_eq!(val, contents::to_integer(der.contents()).unwrap());

Returns a new instance representing utf8_string.

Examples
use bsn1::{Der, IdRef};

let val = &"foo";
let der = Der::utf8_string(val);

assert_eq!(IdRef::utf8_string(), der.id());
assert_eq!(val.as_bytes(), der.contents());

Returns a new instance representing octet_string.

Examples
use bsn1::{Der, IdRef};

let val = &[1, 2, 3];
let der = Der::octet_string(val);

assert_eq!(IdRef::octet_string(), der.id());
assert_eq!(val, der.contents());

Consumes self , returning Vec .

Examples
use bsn1::{Der, IdRef};

let id = IdRef::octet_string();
let contents: &[u8] = &[0, 1, 2, 3, 4];

let der = Der::new(id, contents);
let v = der.clone().into_vec();

assert_eq!(der.as_ref() as &[u8], v.as_ref() as &[u8]);

Methods from Deref<Target = DerRef>

Returns a reference to IdRef of self .

Examples
use bsn1::{Der, IdRef};

let id = IdRef::octet_string();
let contents = &[1, 2, 3];

// 'DER' implements 'Deref<Target=DerRef>'
let der = Der::new(id, contents);
assert_eq!(id, der.id());

Returns Length to represent the length of contents.

Note that DER does not allow indefinite Length. The return value must be Length::Definite .

Warnings

Length stands for the length octets in DER. The total bytes is greater than the value.

Examples
use bsn1::{Der, IdRef, Length};

let id = IdRef::octet_string();
let contents = &[1, 2, 3];

// 'DER' implements 'Deref<Target=DerRef>'
let der = Der::new(id, contents);
assert_eq!(Length::Definite(contents.len()), der.length());

Returns a reference to the contents octets of self .

Examples
use bsn1::{Der, IdRef};

let id = IdRef::octet_string();
let contents = &[1, 2, 3];

// 'DER' implements 'Deref<Target=DerRef>'
let der = Der::new(id, contents);
assert_eq!(contents, der.contents());

Trait Implementations

Performs the conversion.

Performs the conversion.

Immutably borrows from an owned value. Read more

Immutably borrows from an owned value. Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

The resulting type after dereferencing.

Dereferences the value.

Performs the conversion.

Performs the conversion.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Parses bytes starting with DER octets and builds a new instance.

This function ignores extra octet(s) at the end of bytes if any.

Warnings

ASN.1 does not allow some universal identifier for DER, however, this function accepts such an identifier. For example, ‘Octet String’ must be primitive in DER, but this function returns Ok for constructed Octet String DER.

The type returned in the event of a conversion error.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.