rsaPrivateKeyFromDERBytes static method

RSAPrivateKey rsaPrivateKeyFromDERBytes(
  1. Uint8List bytes
)

Decode the given bytes into an RSAPrivateKey.

Implementation

static RSAPrivateKey rsaPrivateKeyFromDERBytes(Uint8List bytes) {
  var asn1Parser = ASN1Parser(bytes);
  var topLevelSeq = asn1Parser.nextObject() as ASN1Sequence;
  //ASN1Object version = topLevelSeq.elements[0];
  //ASN1Object algorithm = topLevelSeq.elements[1];
  var privateKey = topLevelSeq.elements![2];

  asn1Parser = ASN1Parser(privateKey.valueBytes);
  var pkSeq = asn1Parser.nextObject() as ASN1Sequence;

  var modulus = pkSeq.elements![1] as ASN1Integer;
  //ASN1Integer publicExponent = pkSeq.elements[2] as ASN1Integer;
  var privateExponent = pkSeq.elements![3] as ASN1Integer;
  var p = pkSeq.elements![4] as ASN1Integer;
  var q = pkSeq.elements![5] as ASN1Integer;
  //ASN1Integer exp1 = pkSeq.elements[6] as ASN1Integer;
  //ASN1Integer exp2 = pkSeq.elements[7] as ASN1Integer;
  //ASN1Integer co = pkSeq.elements[8] as ASN1Integer;

  var rsaPrivateKey = RSAPrivateKey(
      modulus.integer!, privateExponent.integer!, p.integer, q.integer);

  return rsaPrivateKey;
}