parse static method

PdfLpa parse(
  1. Uint8List der
)

Implementation

static PdfLpa parse(Uint8List der) {
  final obj = ASN1Parser(der).nextObject();
  final seq = _asSequence(obj);
  if (seq == null || seq.elements.isEmpty) {
    return PdfLpa(policies: const <PdfLpaPolicyInfo>[]);
  }

  var index = 0;
  int? version;
  final first = seq.elements.first;
  if (first is ASN1Integer) {
    version = first.valueAsBigInteger.toInt();
    index = 1;
  }

  final policies = <PdfLpaPolicyInfo>[];
  final policiesElements = _asSequenceElements(seq.elements[index]);
  if (policiesElements != null) {
    for (final policyObj in policiesElements) {
      final info = _parsePolicyInfo(policyObj);
      if (info != null) policies.add(info);
    }
  }

  DateTime? nextUpdate;
  if (seq.elements.length > index + 1) {
    nextUpdate = _parseAsn1Time(seq.elements[index + 1]);
  }

  return PdfLpa(
    policies: policies,
    version: version,
    nextUpdate: nextUpdate,
  );
}