-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
non-temporal aes-gcm engine #384
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe split this PR in two? First, do the API changes in struct st_ptls_aead_context_t
, including the changes in the bcrypt
library, and then, add the support for fastls
?
Right. I opened the PRs in the wrong order, but #385 is supposed to do that. |
…(revert prev commit) This reverts commit 86aa4f6.
…de union. It's annoying, but using separate types makes the code safer
…ul, as that causes spills. Works better for encrypt_v128
… for xor as well as retaining 96-bytes of encrypted bytes) was better but GCC can no longer reorder much
This PR implements "non-temporal aes-gcm" engine, that uses non-temporal store instructions when emitting encrypted bytes.
ToDo:
Builds on top of #385.
Older result: as of e0caecc, aes128gcm (16KB block) throughput, compared to openssl (ubuntu 20.04):
*: "nt off" indicates that non-temporal store instructions (
_mm_stream_si256
) were replaced by ordinary stores (_mm_store_si256
).