Page MenuHomeFreeBSD

fix skein1024
ClosedPublic

Authored by yzhong_freebsdfoundation.org on Sep 30 2020, 8:25 PM.
Tags
None
Referenced Files
F163218744: D26614.id77699.diff
Tue, Jul 21, 4:08 AM
F163200351: D26614.id77752.diff
Tue, Jul 21, 12:12 AM
Unknown Object (File)
Mon, Jul 20, 4:02 AM
Unknown Object (File)
Sat, Jul 18, 3:01 AM
Unknown Object (File)
Sat, Jul 4, 11:12 AM
Unknown Object (File)
Jun 12 2026, 12:47 AM
Unknown Object (File)
Jun 8 2026, 5:05 PM
Unknown Object (File)
Jun 7 2026, 2:39 AM
Subscribers

Details

Summary

From https://bugs.freebsd.org/248221:

The optimized assembly implementation of skein1024 "is apparently broken when assembled by contemporary GNU as as well as Clang IAS".

The issue turned out to be using a logical AND instead of a bitwise AND. This patch also re-enables the implementation in the makefile.

Test Plan

Run the skein1024 tests with the fixed code

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

cem added a subscriber: cem.

Yeah, that’d do it. Kind of surprised it ever worked in old gas.

This revision is now accepted and ready to land.Oct 1 2020, 12:40 AM
sys/crypto/skein/amd64/skein_block_asm.S
59

I think there's quite a few others, like this one here

sys/crypto/skein/amd64/skein_block_asm.S
981

This probably also needs to be &?

Went through and looked for all instances of &&: all of them should be changed.

This revision now requires review to proceed.Oct 1 2020, 7:45 PM
This revision was not accepted when it landed; it landed in state Needs Review.Oct 1 2020, 9:06 PM
This revision was automatically updated to reflect the committed changes.