getBytesFromPEMString static method

Uint8List getBytesFromPEMString(
  1. String pem, {
  2. bool checkHeader = true,
})

Implementation

static Uint8List getBytesFromPEMString(String pem,
    {bool checkHeader = true}) {
  var lines = LineSplitter.split(pem)
      .map((line) => line.trim())
      .where((line) => line.isNotEmpty)
      .toList();
  String base64;
  if (checkHeader) {
    if (lines.length < 2 ||
        !lines.first.startsWith('-----BEGIN') ||
        !lines.last.startsWith('-----END')) {
      throw ArgumentError('The given string does not have the correct '
          'begin/end markers expected in a PEM file.');
    }
    base64 = lines.sublist(1, lines.length - 1).join('');
  } else {
    base64 = lines.join('');
  }

  return Uint8List.fromList(base64Decode(base64));
}