Repository navigation
asnkit 1.0.1
What the runtimes write and read now follows the standards where it
did not. Values that were encoded otherwise before are listed below.
The WebAssembly runtime 1.0.0 on npm was made after these changes, and
already has them.
Fixed
GeneralizedTime: a time with a fraction of a second and a second of
0 is written with its seconds, as a fraction after the minute is one
of a minute (X.680 46.3). A decoder reads a fraction of a minute or of
an hour, a time with no minute, an offset of hours only and a
fraction of any number of digits, rounded down to the microsecond.- JER: minus zero is the string
"-0", and is read as minus zero
(X.697 23.2). AnENUMERATEDis always written as its name, also
when the runtime gives numbers (X.697 22). ABIT STRINGis written
with the bytes of its bits only, the bits past them 0, and with named
bits made the size of a fixed size (X.697 24.2). - XER: a control character in a string is an empty element, as
<bel/>, and is read back (X.680 12.15.5). TIME-OF-DAYandDATE-TIME: a value with a fraction of a second or
an offset is rejected when encoding, as these types have neither
(X.680 38.4). The WebAssembly runtime takes aDatefor them as its
time in UTC with no offset.- A default of a
SEQUENCE, aSET, aCHOICE, aSEQUENCE OFor a
SET OFhas the values of its members and items as their own types.
The Rust runtime left out a member of anOCTET STRINGor aBIT STRINGin one.
Changed
- The WebAssembly runtime gives values to and takes them from the
WebAssembly in one buffer, which encodes and decodes about twice as
fast. An object is read by its own enumerable properties. - The specification of the formats tells more of what a runtime needs:
the values of the fields of the nodes, the limits of the CBOR, how a
signature is verified, and what BER, JER and XER write where the
standards let them choose.