fromPkcs8Base64 static method

Signer fromPkcs8Base64(
  1. String base64Pkcs8
)

Implementation

static Signer fromPkcs8Base64(String base64Pkcs8) {
  final derBytes = base64Decode(base64Pkcs8);
  final asn1Parser = ASN1Parser(Uint8List.fromList(derBytes));
  final topSeq = asn1Parser.nextObject() as ASN1Sequence;

  final privateKeyOctetString = topSeq.elements[2] as ASN1OctetString;

  final ecKeyParser = ASN1Parser(privateKeyOctetString.valueBytes());
  final ecSeq = ecKeyParser.nextObject() as ASN1Sequence;

  final privateKeyBytes = (ecSeq.elements[1] as ASN1OctetString).valueBytes();

  final d = _bytesToUnsignedBigInt(privateKeyBytes);

  final domainParams = ECDomainParameters('prime256v1');
  final privateKey = ECPrivateKey(d, domainParams);

  return Signer._(privateKey);
}