Page MenuHomeFreeBSD

fix skein1024
ClosedPublic

Authored by yzhong_freebsdfoundation.org on Sep 30 2020, 8:25 PM.
Tags
None
Referenced Files
F132415328: D26614.id77752.diff
Thu, Oct 16, 6:05 PM
Unknown Object (File)
Wed, Oct 15, 11:10 PM
Unknown Object (File)
Tue, Oct 14, 5:50 PM
Unknown Object (File)
Tue, Oct 14, 5:50 PM
Unknown Object (File)
Tue, Oct 14, 5:50 PM
Unknown Object (File)
Tue, Oct 14, 5:50 PM
Unknown Object (File)
Tue, Oct 14, 5:46 AM
Unknown Object (File)
Fri, Oct 10, 9:05 PM
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

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

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 ↗(On Diff #77699)

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

sys/crypto/skein/amd64/skein_block_asm.S
981 ↗(On Diff #77699)

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.