CBOR: negative BigInteger values not handled correctly #431
Labels
2.18
cbor
need-test-case
To work on issue, a reproduction (ideally unit test) needed
pr-needed
Feature request for which PR likely needed (no active development but idea is workable)
Hi!
I was doing some work with the CBOR part of the library, and I found that it didn't decode or encode negative BigIntegers as I understand the spec. For example:
This prints out
c34101
, but per this CBOR playground, that's CBOR for a bigint of -2, not -1.Similarly on the read side:
Prints
1
, instead of-340282366920938463463374607431768211456
(-2^128). CBOR playgroundI think the issue is that the library is constructing the BigIntegers from the byte string, and then negating it, instead of taking the complement of the byte string (or "
-1 - n
" as stated by the RFC) and constructing the BigInteger from that.Thanks for all your work on jackson!
The text was updated successfully, but these errors were encountered: