On Fri, 18 Dec 2020 14:42:38 GMT, PROgrm_JARvis 
<github.com+7693005+jarviscr...@openjdk.org> wrote:

>>> I've looked through [Standard Algorithms section for 
>>> MessageDigest](https://docs.oracle.com/en/java/javase/15/docs/specs/security/standard-names.html#messagedigest-algorithms)
>>>  and is says
>>> 
>>> > Algorithm names that _can_ be specified
>>> 
>>> And the javadoc of `MessageDigest` says:
>>> 
>>> > Every implementation of the Java platform is required to support the 
>>> > following standard `MessageDigest` algorithms:
>>> > 
>>> > * `SHA-1`
>>> > * `SHA-256`
>>> 
>>> So I cannot find any requirement for `MD5` to be present. Although I 
>>> believe that every implementation does provide it, it may be essential to 
>>> either specify it or describe the behavior for its absence in case of 
>>> `UUID`'s usage.
>> 
>> MD5 and DES were removed as SE requirements in JDK 14. See 
>> https://bugs.openjdk.java.net/browse/JDK-8214483 for more information. 
>> However, there are no plans to remove the implementations from the JDK at 
>> this time.
>
>> MD5 and DES were removed as SE requirements in JDK 14. See 
>> https://bugs.openjdk.java.net/browse/JDK-8214483 for more information. 
>> However, there are no plans to remove the implementations from the JDK at 
>> this time.
> 
> In this case, should a bug report be filled to require specifying behaviour 
> for `UUID#nameUUIDFromBytes(byte[])` in case of MD5 not being present?

A more general issue is that this patch assumes the `MessageDigest` object 
returned is statically shareable, which implies it being stateless and 
thread-safe.

This doesn't seem to be the case. See 
[MD5.java](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/sun/security/provider/MD5.java)
 and the 
[DigestBase.java](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/sun/security/provider/DigestBase.java)
 base class, which both have mutating buffers for doing the digest.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1821

Reply via email to