-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Performance improvements for SymmetricAlgorithm one-shots #55601
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to this area: @bartonjs, @vcsjones, @krwq, @GrabYourPitchforks Issue DetailsWith #2406 merged, we got the basic API shape in and functioning. As follow up work, there are a few places we can optimize for better performance:
|
Much of this was already done in #55090 already - but it's non-trivial and should be done post-6.0. |
This would be appreciated by the https://github.com/gpailler/MegaApiClient project. The mega.nz file hoster uses a custom encryption system based on chained AES calls. No existing mode can do that. So for each block, there needs to be an ECB call. This leads to a very chatty API use with lots of overhead. This Mega client library is used by the popular https://github.com/duplicati/duplicati project. It's a client-side encrypted backup solution. |
@vcsjones Checked the boxes at the top that I think are done now. Uncheck them if you disagree, of course 😄. |
@vcsjones for the item:
maybe worth checking if BCryptDuplicateKey can be used on an already imported key. |
With #2406 merged, we got the basic API shape in and functioning. As follow up work, there are a few places we can optimize for better performance:
Reset
after performing a one-shot operation. Since it's only used one time, there is no point of performing a reset right before it gets disposed.Unix and macOS don't need a copy of the IV since it's only used during initialization and their native APIs create copy themselves for internal use when performing update / final.
Windows requires passing the IV to each call, expecting the callers to track the IV between updates. But we don't need to support transferring this between calls to update, so it can be stack allocated.
ThreadLocal
or similar.The text was updated successfully, but these errors were encountered: