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]);