You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As discussed in the review of #490 with @ineiti and @howjmay , Kyber uses structures with Go int-typed fields, which are unsized. This can lead to differences in serialization and hash computations across different processor architectures.
It would be preferable to switch to sized types (int32 and int64), which would provide consistent behaviours across platforms.
The text was updated successfully, but these errors were encountered:
Additional notes: this probably needs a major version change, as the fields are involved in the hashes. So if a 64-bit machine stored the fields as int, it would store them as 64-bit fields. Then if we change the int to int32, it would be incompatible. The same thing would happen with a 32-bit system and changing the int to int64.
However, #493 suggests that this never worked on a 32-bit system. So I think if we change every int to int64, it should work.
I've added you (@AnomalRoil and @K1li4nL) and me as assignees so that we can discuss this and decide together the best way forward ahead of the v4 release.
As discussed in the review of #490 with @ineiti and @howjmay , Kyber uses structures with Go
int
-typed fields, which are unsized. This can lead to differences in serialization and hash computations across different processor architectures.It would be preferable to switch to sized types (
int32
andint64
), which would provide consistent behaviours across platforms.The text was updated successfully, but these errors were encountered: