decodePublicKeyFromPKIX function

RSAPublicKey decodePublicKeyFromPKIX(
  1. Uint8List encodedBytes
)

Implementation

RSAPublicKey decodePublicKeyFromPKIX(Uint8List encodedBytes) {
  var topLevel = ASN1Parser(encodedBytes);
  var p1 = topLevel.nextObject();
  ASN1Sequence seq = p1 as ASN1Sequence;

  ASN1Sequence seqProtocol = seq.elements![0] as ASN1Sequence;
  // 42, 134, 72, 134, 247, 13, 1, 1, 1
  var el1 = seqProtocol.elements![0] as ASN1ObjectIdentifier;
  var el2 = seqProtocol.elements![1]; // ASN1Null

  ASN1BitString bsPublicKey = seq.elements![1] as ASN1BitString;
  var seqPubKey =
      ASN1Sequence.fromBytes(Uint8List.fromList(bsPublicKey.stringValues!));
  BigInt n = (seqPubKey.elements![0] as ASN1Integer).integer!;
  BigInt e = (seqPubKey.elements![1] as ASN1Integer).integer!;
  RSAPublicKey publicKey = RSAPublicKey(n, e);
  return publicKey;
}