rasn1 0.1.0 has been released. This is the first public release.
* home: <https://github.com/sdaubert/rasn1>
* bugs: <https://github.com/sdaubert/rasn1/issues>
* doc: <http://www.rubydoc.info/gems/rasn1>
RASN1 is a pure ruby ASN.1 library. RASN1 helps to create ASN.1 parsers
and encoders.
The RASN1::Model class is the entry point to create a parser/encoder.
Simple example:
From ASN1. definition:
Record ::= SEQUENCE {
id INTEGER,
room [0] INTEGER OPTIONAL,
house [1] INTEGER DEFAULT 0
}
a model may be defined this way:
class Record < RASN1::Model
sequence :record,
content: [integer(:id),
integer(:room, implicit: 0, optional: true),
integer(:house, implicit: 1, default: 0)]
end
Then, parsing is as simple as:
record = Record.parse(der_string)
record[:id] # => RASN1::Integer
record[:id].value # => Integer
And encoding:
record[:id].value = 16_543_154
record.to_der # => String
For now, supported ASN.1 types are: BOOLEAN, INTEGER, BIT STRING, OCTET
STRING, NULL, OBJECT ID, ENUMERATED, UTF8 STRING, SEQUENCE, SEQUENCE OF,
SET and SET OF.
TODO: implement time types, REAL and some character strings.