encodeEcPublicKeyToPem static method
Enode the given elliptic curve publicKey to PEM format.
This is descripted in tools.ietf.org/html/rfc5480
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
Implementation
static String encodeEcPublicKeyToPem(ECPublicKey publicKey) {
var outer = ASN1Sequence();
var algorithm = ASN1Sequence();
algorithm.add(ASN1ObjectIdentifier.fromName('ecPublicKey'));
algorithm.add(ASN1ObjectIdentifier.fromName('prime256v1'));
var encodedBytes = publicKey.Q!.getEncoded(false);
var subjectPublicKey = ASN1BitString(stringValues: encodedBytes);
outer.add(algorithm);
outer.add(subjectPublicKey);
var dataBase64 = base64.encode(outer.encode());
var chunks = _chunk(dataBase64, 64);
return '$BEGIN_EC_PUBLIC_KEY\n${chunks.join('\n')}\n$END_EC_PUBLIC_KEY';
}