parse static method
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,
);
}