RFR: 8294821: Class load improvement for AES crypto engine
Mark Powers
mpowers at openjdk.org
Mon Oct 10 16:37:38 UTC 2022
On Wed, 5 Oct 2022 05:43:32 GMT, Xue-Lei Andrew Fan <xuelei at openjdk.org> wrote:
> Hi,
>
> May I have the code clean up reviewed?
>
> There is a lot of computation in AESCrypt class load, which could be avoid by using the computation result directly. The computation takes 6.971875 milliseconds in a MacOS M1 laptop. Although it is a one-time computation, but removing the computation could speed up java/jvm loading time by 6.971875 milliseconds without extra memory cost.
>
> Actually, because the computation result are used directly, the methods that supports the computation are no longer needed and the related static arrays are no longer needed. This is the extra benefits to use the computation result directly, rather than computing on class initialization.
>
> This patch does not change the logic except removing the pre-computation code and initializing the tables with the pre-computed result explicitly. The existing regression and inter-op tests should be sufficient to ensure that the tables are correctly copied from the dumping of the old computation code results.
>
> Except that, I also cleaned up some code warnings from the IDE I used.
>
> Thanks,
> Xuelei
Changing one pre-computed byte should be sufficient to blow up all AES tests.
Add a comment saying where your pre-computed values come from, e.g. Tables from FIPS 197.
-------------
PR: https://git.openjdk.org/jdk/pull/10568
More information about the security-dev
mailing list