Je dois convertir un BigInteger en un entier non signé codé en format big-endian mais j'ai des problèmes car BigInteger.toByteArray renvoie une représentation signée. Comment puis-je convertir cette valeur en un format non signé?Comment obtenir un tableau d'octets non signé d'un BigInteger en Java?
(relativement) Contexte utiles
Je travaille sur un code qui utilise JNI pour avoir C++ appeler des méthodes Java pour gérer certaines fonctionnalités de chiffrement (ce qui est un fournisseur CNG Microsoft qui déleste certaines fonctionnalités Java) . J'ai la clé publique en Java et les valeurs BigInteger que j'ai besoin de convertir sont les coordinates of the Elliptic Curve Public Key. Selon le CNG documentation j'ai besoin de fournir ces points comme "entiers non signés codés en format big-endian".
Modifier
Avec le recul, cela aurait pu être un poste stupide. Je devenais confus avec des nombres négatifs et positifs et comment gérer cela (et parce qu'il est tard et mon esprit s'est transformé en bouillie) mais il s'avère que je n'ai pas besoin de traiter cela depuis le elliptic curve points won't be negative. Merci à tous ceux qui ont répondu ici! Je vais laisser cela au cas où cela aiderait quelqu'un d'autre. quelle est la différence
Si entier en question est positive,? Si c'est négatif, alors quel devrait être le résultat de la conversion en non signé? –
Jetez un oeil à [la réponse que j'ai donnée à une requête similaire] (http://stackoverflow.com/questions/38918190/how-to-get-the-2s-complement-value-of-a-biginteger-of- longueur arbitraire/38931124 # 38931124). –
En d'autres termes, il s'agit d'un doublon de http://stackoverflow.com/q/38918190/95954 –