PolicyQualifierInfo.fromAsn1 constructor

PolicyQualifierInfo.fromAsn1(
  1. ASN1Sequence sequence
)

The ASN.1 definition is:

PolicyQualifierInfo ::= SEQUENCE { policyQualifierId PolicyQualifierId, qualifier ANY DEFINED BY policyQualifierId }

Implementation

factory PolicyQualifierInfo.fromAsn1(ASN1Sequence sequence) {
  var policyQualifierId = toDart(sequence.elements[0]) as ObjectIdentifier;

  switch (policyQualifierId.nodes.last) {
    case 1: // cps
      var cpsUri = toDart(sequence.elements[1]);
      return PolicyQualifierInfo(
          policyQualifierId: policyQualifierId, cpsUri: cpsUri);
    case 2: // unotice
      return PolicyQualifierInfo(
          policyQualifierId: policyQualifierId,
          userNotice:
              UserNotice.fromAsn1(sequence.elements[1] as ASN1Sequence));
  }
  throw UnsupportedError(
      'Policy qualifier id $policyQualifierId not supported');
}