parsePemCertificates function

List<String> parsePemCertificates(
  1. String pemBundle
)

Certificate PEM parser: extract individual certificates from a PEM bundle.

Implementation

List<String> parsePemCertificates(String pemBundle) {
  final certs = <String>[];
  const beginMarker = '-----BEGIN CERTIFICATE-----';
  const endMarker = '-----END CERTIFICATE-----';

  var searchStart = 0;
  while (searchStart < pemBundle.length) {
    final beginIdx = pemBundle.indexOf(beginMarker, searchStart);
    if (beginIdx == -1) break;

    final endIdx = pemBundle.indexOf(endMarker, beginIdx);
    if (endIdx == -1) break;

    final certEnd = endIdx + endMarker.length;
    certs.add(pemBundle.substring(beginIdx, certEnd).trim());
    searchStart = certEnd;
  }

  return certs;
}