Crate yasna [] [src]

A library for reading and writing ASN.1 data.

Example

To serialize ASN.1 data, you can use construct_der.

extern crate yasna;

fn main() {
    let der = yasna::construct_der(|writer| {
        writer.write_sequence(|writer| {
            writer.next().write_i64(10);
            writer.next().write_bool(true);
        })
    });
    println!("(10, true) = {:?}", der);
}

To deserialize ASN.1 data, you can use parse_ber or parse_der.

extern crate yasna;

fn main() {
    let asn = yasna::parse_der(&[48, 6, 2, 1, 10, 1, 1, 255], |reader| {
        reader.read_sequence(|reader| {
            let i = try!(reader.next().read_i64());
            let b = try!(reader.next().read_bool());
            return Ok((i, b));
        })
    }).unwrap();
    println!("{:?} = [48, 6, 2, 1, 10, 1, 1, 255]", asn);
}

Structs

ASN1Error
BERReader
BERReaderSeq
BitString
DERWriter

A writer object that accepts an ASN.1 value.

DERWriterSeq

A writer object that accepts ASN.1 values.

DERWriterSet

A writer object that accepts ASN.1 values.

ObjectIdentifier
PrintableString
SetOf
Tag

An ASN.1 tag.

UtcTime

Enums

ASN1ErrorKind
BERMode
TagClass

An ASN.1 tag class, used in Tag.

TagType

Constants

TAG_BITSTRING
TAG_BOOLEAN
TAG_INTEGER
TAG_NULL
TAG_OCTETSTRING
TAG_OID
TAG_PRINTABLESTRING
TAG_SEQUENCE
TAG_SET
TAG_UTCTIME
TAG_UTF8STRING

Traits

FromBER

Functions

construct_der

Constructs DER-encoded data as Vec<u8>.

construct_der_seq

Constructs DER-encoded sequence of data as Vec<u8>.

parse_ber
parse_ber_general
parse_der

Type Definitions

ASN1Result