--- ../platform-tools-29.0.2/src/main/java/com/android/apksig/internal/asn1/Asn1BerParser.java 2020-07-16 21:18:25.186996621 +0800 +++ ../com/android/apksig/internal/asn1/Asn1BerParser.java 2020-07-16 21:17:19.166996646 +0800 @@ -26,6 +26,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.math.BigInteger; +import java.math.BigDecimal; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Collections; @@ -506,7 +507,8 @@ } private static int integerToInt(ByteBuffer encoded) throws Asn1DecodingException { - BigInteger value = integerToBigInteger(encoded); + BigInteger prevalue = integerToBigInteger(encoded); + BigDecimal value = new BigDecimal(prevalue); try { return value.intValueExact(); } catch (ArithmeticException e) { @@ -516,7 +518,8 @@ } private static long integerToLong(ByteBuffer encoded) throws Asn1DecodingException { - BigInteger value = integerToBigInteger(encoded); + BigInteger prevalue = integerToBigInteger(encoded); + BigDecimal value = new BigDecimal(prevalue); try { return value.longValueExact(); } catch (ArithmeticException e) {