decodePemToDer function

Uint8List decodePemToDer(
  1. String pem
)

Decode PEM -> DER

Implementation

Uint8List decodePemToDer(String pem) {
  const startsWith = [
    '-----BEGIN PUBLIC KEY-----',
    '-----BEGIN PRIVATE KEY-----',
    '-----BEGIN CERTIFICATE-----',
    '-----BEGIN EC PRIVATE KEY-----',
  ];

  const endsWith = [
    '-----END PUBLIC KEY-----',
    '-----END PRIVATE KEY-----',
    '-----END CERTIFICATE-----',
    '-----END EC PRIVATE KEY-----',
  ];

  for (final s in startsWith) {
    if (pem.startsWith(s)) {
      pem = pem.substring(s.length);
    }
  }

  for (final s in endsWith) {
    if (pem.endsWith(s)) {
      pem = pem.substring(0, pem.length - s.length);
    }
  }

  pem = pem.replaceAll('\n', '');
  pem = pem.replaceAll('\r', '');

  return Uint8List.fromList(base64.decode(pem));
}