toAsn1 method

ASN1Sequence toAsn1()

Implementation

ASN1Sequence toAsn1() {
  var seq = ASN1Sequence();

  if (version != 1) {
    var v = ASN1Integer(BigInt.from(version! - 1));
    var o = ASN1Object.preEncoded(0xa0, v.encodedBytes);
    var b = o.encodedBytes
      ..setRange(o.encodedBytes.length - v.encodedBytes.length,
          o.encodedBytes.length, v.encodedBytes);
    o = ASN1Object.fromBytes(b);
    seq.add(o);
  }
  seq
    ..add(fromDart(serialNumber))
    ..add(signature!.toAsn1())
    ..add(issuer!.toAsn1())
    ..add(validity!.toAsn1())
    ..add(subject!.toAsn1())
    ..add(subjectPublicKeyInfo!.toAsn1());
  if (version! > 1) {
    if (issuerUniqueID != null) {
      // TODO
      // var iuid = ASN1BitString.fromBytes(issuerUniqueID);
      //ASN1Object.preEncoded(tag, valBytes)
    }
  }
  return seq;
}