Exemple #1
0
  /** Read a BigInteger from the DerInputStream. */
  static BigInteger getBigInteger(DerInputStream data) throws IOException {
    BigInteger b = data.getBigInteger();

    /*
     * Some implementations do not correctly encode ASN.1 INTEGER values
     * in 2's complement format, resulting in a negative integer when
     * decoded. Correct the error by converting it to a positive integer.
     *
     * See CR 6255949
     */
    if (b.signum() < 0) {
      b = new BigInteger(1, b.toByteArray());
    }
    return b;
  }