Struct yasna::DERWriter [] [src]

pub struct DERWriter {
    // some fields omitted
}

A writer object that has an internal buffer storing DER-encoded data.

This object is only created by construct_der function.

Methods

impl DERWriter
[src]

fn write_bool(&mut self, val: bool) -> Result<()>

Writes bool as an ASN.1 BOOLEAN value.

Examples

use yasna;
let der = yasna::construct_der(|writer| {
    writer.write_bool(true)
}).unwrap();
assert_eq!(der, vec![1, 1, 255]);

fn write_i64(&mut self, val: i64) -> Result<()>

Writes i64 as an ASN.1 INTEGER value.

Examples

use yasna;
let der = yasna::construct_der(|writer| {
    writer.write_i64(1234567890)
}).unwrap();
assert_eq!(der, vec![2, 4, 73, 150, 2, 210]);

fn write_u64(&mut self, val: u64) -> Result<()>

Writes u64 as an ASN.1 INTEGER value.

fn write_i32(&mut self, val: i32) -> Result<()>

Writes i32 as an ASN.1 INTEGER value.

fn write_u32(&mut self, val: u32) -> Result<()>

Writes u32 as an ASN.1 INTEGER value.

fn write_i16(&mut self, val: i16) -> Result<()>

Writes i16 as an ASN.1 INTEGER value.

fn write_u16(&mut self, val: u16) -> Result<()>

Writes u16 as an ASN.1 INTEGER value.

fn write_i8(&mut self, val: i8) -> Result<()>

Writes i8 as an ASN.1 INTEGER value.

fn write_u8(&mut self, val: u8) -> Result<()>

Writes u8 as an ASN.1 INTEGER value.

fn write_bigint(&mut self, val: &BigInt) -> Result<()>

Writes BigInt as an ASN.1 INTEGER value.

Examples

use yasna;
use num::bigint::BigInt;
let der = yasna::construct_der(|writer| {
    writer.write_bigint(
        &BigInt::parse_bytes(b"1234567890", 10).unwrap())
}).unwrap();
assert_eq!(der, vec![2, 4, 73, 150, 2, 210]);

fn write_biguint(&mut self, val: &BigUint) -> Result<()>

Writes BigUint as an ASN.1 INTEGER value.

Examples

use yasna;
use num::bigint::BigUint;
let der = yasna::construct_der(|writer| {
    writer.write_biguint(
        &BigUint::parse_bytes(b"1234567890", 10).unwrap())
}).unwrap();
assert_eq!(der, vec![2, 4, 73, 150, 2, 210]);

fn write_bytes(&mut self, bytes: &[u8]) -> Result<()>

Writes &[u8] as an ASN.1 OCTETSTRING value.

Examples

use yasna;
let der = yasna::construct_der(|writer| {
    writer.write_bytes(b"Hello!")
}).unwrap();
assert_eq!(der, vec![4, 6, 72, 101, 108, 108, 111, 33]);

fn write_null(&mut self) -> Result<()>

Writes the ASN.1 NULL value.

Examples

use yasna;
let der = yasna::construct_der(|writer| {
    writer.write_null()
}).unwrap();
assert_eq!(der, vec![5, 0]);

fn write_sequence<T, F>(&mut self, callback: F) -> Result<T> where F: FnMut(&mut Self) -> Result<T>

Writes ASN.1 SEQUENCE.

This function uses the loan pattern: callback is called back with a DERWriter, to which the contents of the SEQUENCE is written.

Examples

use yasna;
let der = yasna::construct_der(|writer| {
    writer.write_sequence(|writer| {
        try!(writer.write_i64(10));
        try!(writer.write_bool(true));
        return Ok(());
    })
}).unwrap();
assert_eq!(der, vec![48, 6, 2, 1, 10, 1, 1, 255]);

Trait Implementations

impl Debug for DERWriter
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.