/** 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; }