Мне нужно преобразовать BigInteger в целое число без знака, закодированное в формате big-endian, но у меня возникают проблемы, поскольку BigInteger.toByteArray возвращает подписанное представление. Как я могу преобразовать это значение в беззнаковый формат?
(Относительно) полезный фон
Я работаю над некоторым кодом, который использует JNI, чтобы c ++ вызывал некоторые методы Java для обработки некоторых криптографических функций (это поставщик Microsoft CNG, который переносит некоторые функции на Java). У меня есть открытый ключ в Java, и значения BigInteger, которые мне нужно преобразовать, - это координаты открытого ключа эллиптической кривой. Согласно документация по CNG Мне нужно предоставить эти точки как« целые числа без знака, закодированные в формате big-endian ».
Изменить
Оглядываясь назад, я могу сказать, что это был глупый пост. Я запутался в отрицательных и положительных числах и о том, как с этим справиться (и потому что уже поздно, и мой разум превратился в кашу), но оказалось, что мне не нужно иметь дело с этим, поскольку точки эллиптической кривой не будут отрицательными. Спасибо всем, кто ответил здесь! Я оставлю это на случай, если это кому-то поможет.