test: clé de licence dont l’exp dépasse 2^32 (licences de 100 ans)
#363
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#363
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Suivi de maximus/maximus-api#63 (licences de 100 ans, PR maximus-api#72). Priorité basse, à faire avant le go-live si possible.
Contexte vérifié (2026-09-27)
expvaut alors environ 4,94 milliards de secondes, au-delà de 2^32. Les clés émises jusqu'ici (10 ans) restaient sous 2^31 : cette frontière n'a jamais été exercée par un test du client.src-tauri/src/commands/license_commands.rs:LicenseClaims.expetActivationClaims.expsont desi64dans toutes les versions publiées qui valident une licence (v0.7.0 à v0.15.0).jsonwebtoken9 valideexpenu64. Builds x86_64 seulement. Le front rendnew Date(expires_at * 1000).u32,usizesur une cible 32 bits, conversionas i32pour un affichage) casserait les clés de 100 ans sans qu'aucun test ne rougisse.Tâches
exp = now + 36525 * 86400est acceptée parvalidate_with_key(et par le chemin d'activation), etexpires_atrendu au front vaut bien cette valeur.expdans le passé reste refusée (la validation stricte n'est pas affaiblie).cargo testet vitest verts.Critères d'acceptation
exppar un entier 32 bits fait rougir au moins un test.Coordination
/issue-licensede ce dépôt plafonne encore la durée à l'ancienne valeur : à passer à 36525 une fois maximus-api#63 déployée.Les tests de cette issue sont absorbés par #347 (analyse du 2026-09-29) : une clé avec
exp = now + 36525 * 86400acceptée parvalidate_with_keyavecexpires_atintact, la même clé expirée refusée, et « Sans échéance » pour une échéance à 100 ans côté carte (src/shared/licenseExpiry.ts). Un passage deexpà un entier 32 bits ferait rougir le premier.Restent ici : le plafond de
/issue-licenseà 36525 jours une fois maximus-api#63 déployée, et l'essai d'une vraie clé émise après #63 dans un build local.Fermée le 2026-10-10, sur décision de Max.
Les tests demandés ont été absorbés par #347 (voir le commentaire du 2026-09-30) et livrés dans la v0.16.0 du 2026-10-03 : clé avec
expà 100 ans acceptée avecexpires_atintact, même clé expirée refusée, « Sans échéance » côté carte. Plus rien à faire ici ; la milestonespec-paiementsde ce dépôt est fermée dans la foulée.