X509Name.fromAsn1 constructor
X509Name.fromAsn1(
- ASN1Sequence seq
Implementation
factory X509Name.fromAsn1(ASN1Sequence seq) {
final attrs = <X509NameAttribute>[];
for (final rdn in seq.elements) {
final rdnSeqs = <ASN1Sequence>[];
if (rdn is ASN1Set) {
for (final el in rdn.elements) {
if (el is ASN1Sequence) rdnSeqs.add(el);
}
} else if (rdn is ASN1Sequence) {
rdnSeqs.add(rdn);
}
for (final attrSeq in rdnSeqs) {
if (attrSeq.elements.length < 2) continue;
final oidObj = attrSeq.elements[0] as ASN1ObjectIdentifier;
final valueObj = attrSeq.elements[1];
final oid = oidObj.identifier ?? '';
final shortName = _oidShortName(oid);
final value = _asn1ValueToString(valueObj);
attrs.add(
X509NameAttribute(
oid: oid,
shortName: shortName,
value: value,
),
);
}
}
return X509Name(attrs);
}