sharplispers / ironclad

A cryptographic toolkit written in Common Lisp
BSD 3-Clause "New" or "Revised" License
166 stars 28 forks source link

fixes/workarounds for Clozure CL for ARM32 test failures #31

Closed jesseoff closed 4 years ago

jesseoff commented 4 years ago

The modifications to rc2.lisp to rearrange two lines of code and the change to groestl.lisp to use the +groestl-table+ directly are workarounds for (seeming) compiler bugs in Clozure CL for ARM32. They should be benign on all other platforms (I think)

The modifications to the copy-digest methods in all the digest classes I believe are more globally appropriate; the use of type declare statements do not guarantee the emission of a runtime type check in code even though they typically do. There was one class (tree-hash) where Clozure CL for ARM32 seemingly missed the type check and caused a crash in the copy-digest.error test. An explicit (check-type ...) seems more definite.

glv2 commented 4 years ago

Thanks.