AuthorityKeyIdentifier.fromAsn1 constructor

AuthorityKeyIdentifier.fromAsn1(
  1. ASN1Sequence sequence
)

Creates an authority key identifier extension value from an ASN1Sequence.

The ASN.1 definition is:

AuthorityKeyIdentifier ::= SEQUENCE { keyIdentifier 0 KeyIdentifier OPTIONAL, authorityCertIssuer 1 GeneralNames OPTIONAL, authorityCertSerialNumber 2 CertificateSerialNumber OPTIONAL }

KeyIdentifier ::= OCTET STRING

Implementation

factory AuthorityKeyIdentifier.fromAsn1(ASN1Sequence sequence) {
  Uint8List? keyId;
  GeneralNames? issuer;
  BigInt? number;
  for (var o in sequence.elements) {
    switch (o.tag & 0x1f) {
      case 0:
        keyId = o.contentBytes();
        break;
      case 1:
        issuer = GeneralNames.fromAsn1(o);
        break;
      case 2:
        number =
            (ASN1Parser(o.encodedBytes..[0] = 2).nextObject() as ASN1Integer)
                .valueAsBigInteger;
    }
  }
  return AuthorityKeyIdentifier(keyId, issuer, number);
}