pemToPkcs7 static method
Converts the given single pems
to a PKCS7 pem string according to
datatracker.ietf.org/doc/html/rfc2315
Implementation
static String pemToPkcs7(List<String> certPems) {
var outer = ASN1Sequence();
outer.add(ASN1ObjectIdentifier([1, 2, 840, 113549, 1, 7, 2]));
var inner = ASN1Sequence();
inner.add(ASN1Integer.fromtInt(1));
inner.add(ASN1Set());
inner.add(
ASN1Sequence(
elements: [
ASN1ObjectIdentifier([1, 2, 840, 113549, 1, 7, 1])
],
),
);
var certs = ASN1Sequence(tag: 0xA0);
for (var pem in certPems) {
var bytes = CryptoUtils.getBytesFromPEMString(pem);
var asn1Parser = ASN1Parser(bytes);
var top = asn1Parser.nextObject() as ASN1Sequence;
certs.add(top);
}
inner.add(certs);
var a1 = ASN1Null(tag: 0xA1);
inner.add(a1);
inner.add(ASN1Set());
outer.add(ASN1Sequence(elements: [inner], tag: 0xA0));
var plain =
encodeASN1ObjectToPem(outer, BEGIN_PKCS7, END_PKCS7, newLine: '\n');
return plain;
}