Easier checks for pre-conditions (wrt hardware capabilities) #2
Labels
No labels
announcement
bug
duplicate
enhancement
help wanted
invalid
Next release
question
sighting
wontfix
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-intel/isa-l_crypto#2
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?
I know that each function has a set of preconditions, it would be great if we can easily check for those at run time (instead of rolling our own custom checkers). E.g., AES key expansion adapts to AVX or SSE. However, it also requires AES. Ran into a setup which used Haswell but with AES-NI disabled in BIOS (not sure why this is still the default with certain vendors). Got an illegal instruction error. Thanks
Almost all functions in the library have base functions that are highly portable and few minimum requirements so the multi-binary interface has few restrictions. The block ciphers in isa-l_crypto are one exception to this and do require AES-NI as a minimum.
Some early CRB boards have AES-NI disabled in BIOS but do re-enable for production boards.
Looks like Super-Micros disable them by default.
I use a CPUID based lookup: ecx, bit 25 to detect AES.
I have bumped into this issue as well - somebody run Java JNI wrapper for isa-l_crypto I wrote on computer without AES instructions. That ended ugly with Java core dump. I will need to write check for AES support. If there would be something simple like that added to isa-l_crypto, I would use it for sure.