rsaPublicKeyFromDERBytes static method

RSAPublicKey rsaPublicKeyFromDERBytes(
  1. Uint8List bytes
)

Decode the given bytes into an RSAPublicKey.

Implementation

static RSAPublicKey rsaPublicKeyFromDERBytes(Uint8List bytes) {
  var asn1Parser = ASN1Parser(bytes);
  var topLevelSeq = asn1Parser.nextObject() as ASN1Sequence;
  var publicKeySeq;
  if (topLevelSeq.elements![1].runtimeType == ASN1BitString) {
    var publicKeyBitString = topLevelSeq.elements![1] as ASN1BitString;

    var publicKeyAsn =
    ASN1Parser(publicKeyBitString.stringValues as Uint8List?);
    publicKeySeq = publicKeyAsn.nextObject() as ASN1Sequence;
  } else {
    publicKeySeq = topLevelSeq;
  }
  var modulus = publicKeySeq.elements![0] as ASN1Integer;
  var exponent = publicKeySeq.elements![1] as ASN1Integer;

  var rsaPublicKey = RSAPublicKey(modulus.integer!, exponent.integer!);

  return rsaPublicKey;
}