getModulusFromRSAX509Pem static method

BigInt getModulusFromRSAX509Pem(
  1. String pem
)

Returns the modulus of the given pem that represents an RSA X509 certificate.

This equals the following openssl command:

openssl x509 -noout -modulus -in FILE.cer

Implementation

static BigInt getModulusFromRSAX509Pem(String pem) {
  var data = x509CertificateFromPem(pem);
  var bytesString = data.tbsCertificate!.subjectPublicKeyInfo.bytes;

  var bytes = _stringAsBytes(bytesString!);
  var parser = ASN1Parser(bytes);
  var next = parser.nextObject() as ASN1Sequence;
  var valueBytes = next.elements!.elementAt(1).valueBytes;
  if (valueBytes!.elementAt(0) == 0) {
    valueBytes = valueBytes.sublist(1);
  }
  var bitStringParser = ASN1Parser(valueBytes);
  next = bitStringParser.nextObject() as ASN1Sequence;
  var integer = next.elements!.elementAt(0) as ASN1Integer;
  return integer.integer!;
}