pkcs7fromPem static method
Parses the given PEM
Implementation
static Pkcs7CertificateData pkcs7fromPem(String pem) {
var bytes = CryptoUtils.getBytesFromPEMString(pem);
var asn1Parser = ASN1Parser(bytes);
var topLevelSeq = asn1Parser.nextObject() as ASN1Sequence;
var x509List = <X509CertificateData>[];
var version = 0;
var type = '';
if (topLevelSeq.elements != null) {
var oi = topLevelSeq.elements!.elementAt(0) as ASN1ObjectIdentifier;
type = oi.objectIdentifierAsString!;
var obj = topLevelSeq.elements!.elementAt(1);
var seq = ASN1Sequence.fromBytes(obj.valueBytes!);
var integer = seq.elements!.elementAt(0) as ASN1Integer;
version = integer.integer!.toInt();
var obj1 = seq.elements!.elementAt(3);
var seq1 = ASN1Sequence.fromBytes(obj1.encodedBytes!);
for (var el in seq1.elements!) {
var x509 = _x509FromAsn1Sequence(el as ASN1Sequence);
var plain = encodeASN1ObjectToPem(el, BEGIN_CERT, END_CERT);
x509.plain = plain;
x509List.add(x509);
}
}
return Pkcs7CertificateData(
certificates: x509List, version: version, contentType: type);
}