unsignedAttributes property Null safety

Iterable<MapEntry<ASN1ObjectIdentifier, List<ASN1Object>>> unsignedAttributes

Non-signed attributes

Implementation

Iterable<MapEntry<ASN1ObjectIdentifier, List<ASN1Object>>>
    get unsignedAttributes sync* {
  if (_unsignedAttrs == null) {
    return;
  }

  var o = 0;
  while (o < _unsignedAttrs!.valueByteLength!) {
    final c = ASN1Parser(_unsignedAttrs!.valueBytes!.sublist(o)).nextObject()
        as ASN1Sequence;

    final id = c.elements![0] as ASN1ObjectIdentifier;
    final value = c.elements![1] as ASN1Set;
    yield MapEntry<ASN1ObjectIdentifier, List<ASN1Object>>(
        id, value.elements!);

    o += c.encodedBytes!.lengthInBytes;
  }
}