JDK 9 RFR of JDK-8132855: Adjust tier 1 and 2 definitions for security-related intrinsics

Sean Mullan sean.mullan at oracle.com
Thu Aug 6 16:41:38 UTC 2015


On 08/04/2015 03:16 PM, joe darcy wrote:
> Hello,
>
> As a complement to JDK-8132854: Adjust tier 1 and 2 definitions for
> nio-related intrinsics, with the fix for
>
>          JDK-8076112: Add @HotSpotIntrinsicCandidate annotation to
> indicate methods for which Java Runtime has intrinsics
>
> the sources for the libraries clearly indicate which methods might have
> intrinsic support in HotSpot, that is, which methods might have their
> Java source implementation replaced by some other code sequence
> maintained in HotSpot, such as a special-purpose processor-specific
> instruction. To ease testing, it would be helpful if all the
> intrinsified methods were included in the tier 1 test group. Most of the
> intrinics are in java.lang, java.math, and java.util, packages whose
> tests are already in tier 1.
>
> Several security libraries are marked with @HotSpotIntrinsicCandidate
> including:
>
> ./java.base/share/classes/com/sun/crypto/provider/GHASH.java # internal
> processBlocks method to ghash
> ./java.base/share/classes/com/sun/crypto/provider/AESCrypt.java #
> implEncryptBlock, implDecryptBlock
> ./java.base/share/classes/com/sun/crypto/provider/CipherBlockChaining.java
> # implEncrypt, implDecrypt
>
> The tests for those libraries seem to be included in the security2 test
> group which is part of tier 2. I propose to move the tests for that
> functionality to tier 1:
>
> diff -r 9bce83952890 test/TEST.groups
> --- a/test/TEST.groups    Tue Aug 04 11:26:51 2015 -0700
> +++ b/test/TEST.groups    Tue Aug 04 12:09:59 2015 -0700
> @@ -30,6 +30,7 @@
>       :jdk_util \
>       sun/nio/cs/ISO8859x.java \
>       java/nio/Buffer \
> +    com/sun/crypto/provider/Cipher \
>       :jdk_math
>
>   tier2 = \
> @@ -40,6 +41,7 @@
>       :jdk_net \
>       :jdk_time \
>       :jdk_security \
> +    -com/sun/crypto/provider/Cipher \
>       :jdk_text \
>       :core_tools \
>       :jdk_other \

Looks good to me.

>
> There are several others security libs intrinsics too:
>
> ./java.base/share/classes/sun/security/provider/SHA5.java # implCompress0
> ./java.base/share/classes/sun/security/provider/DigestBase.java #
> implCompressMultiBlock0
> ./java.base/share/classes/sun/security/provider/SHA.java # implCompress0
> ./java.base/share/classes/sun/security/provider/SHA2.java # implCompress0
>
> However, it was not immediately clear to me where the tests for that
> functionality reside. Assuming they can be identified, I would like to
> move those tests to tier 1 as well.

These intrinsics were implemented in JEP 207. Looking at the associated 
changesets, it looks like the tests were put in the hotspot repo:

http://hg.openjdk.java.net/jdk9/jdk9/hotspot/file/edf93f2ccf99/test/compiler/intrinsics/sha/TestSHA.java 


--Sean




More information about the security-dev mailing list