Tenez les ids int64 du jeton comme des chiffres, pas comme des nombres

Fixkamo-internal
Expédié
19 août 2026 à 02:18 UTC
Auteur
kamo
Commite
f55a95c

KToken n'a pas pu vérifier un vrai jeton. Les quatre ids qu'il porte sont int64s, et le Java signataire (kmo-shared-library KToken-canonicalForMac) append chacun en tant que «longue» brute, donc tout 19 chiffres entrent dans le matériau MAC. Cette classe les lit avec Number(), qui passe 2x53, et chaque setter a ensuite appliqué 'v'0' -- une troncature de 32 bits sur le dessus de l'arrondi. 1168485648209608710 est sorti comme un petit nombre entier, le HMAC recalculé n'a pas égalé le l'un le serveur signé, et parseAndVerifyCookie est revenu nul: un jeton valide lu comme falsifié. Il n'est d'accord que sur lui-même, sur les ids assez petits pour représenter. Les ids sont maintenant les propres chaînes de doigts du cookie, donc le matériau correspond à l'octet de signataire pour l'octet, et sont validés par la forme plutôt que par le nombre(), ce qui irait à l'encontre de la point. L'expiration du séjour reste un nombre - les secondes d'âge d'environ 8 % et ne sont pas menacées. Rien n'appelle parseAndVerifyCookie aujourd'hui, dans l'une des trois prochaines applications; le cookie est transmis aux services in extenso. Donc cela fixe une mine terrestre plutôt qu'une panne -- mais c'est une mine terrestre dans un chemin d'autoth, où l'échec ressemblerait à une connexion rejetée plutôt qu'un bogue arrondi. Les nouveaux tests sont prouvés par mutation: 4 des 6 échecs contre la mise en œuvre précédente. La même solution va à kamo-login et kamo-register, qui transportent des copies divergentes de ce fichier avec le défaut identique.

Tous les changements

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation