[ 
https://issues.apache.org/jira/browse/MWRAPPER-153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17894342#comment-17894342
 ] 

Zafer Balkan commented on MWRAPPER-153:
---------------------------------------

Here's a background. I am a security manager in a company, and my devs came to 
me saying that the hardening measures blocks their workflow. That's how I mat 
the maven wrapper. I checked the code, found the issue, updated MD5 with SHA256 
and made sue this workaround is documented and communicated within the team.

 

But this is not a unique issue. I believe many devs around the world can face 
this issue with a trivial fix. So, it is a better decision to make it a 
permanent solution than a workaround.

> only-mvnw.cmd fails when FIPS mode is enabled on Windows hosts
> --------------------------------------------------------------
>
>                 Key: MWRAPPER-153
>                 URL: https://issues.apache.org/jira/browse/MWRAPPER-153
>             Project: Maven Wrapper
>          Issue Type: Bug
>          Components: Maven Wrapper Scripts
>         Environment: Tested on Windows 10 and 11
>            Reporter: Zafer Balkan
>            Priority: Trivial
>
> h2. Problem
> When `only-mvnw.cmd` is used to initiate the wrapper, the script fails due to 
> MD5. 
>  
> {code:java}
> Exception calling "Create" with "0" argument(s): "This implementation is not 
> part of the Windows Platform FIPS
> validated cryptographic algorithms."
> At line:1 char:1
> + $MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().Comp ...
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
>     + FullyQualifiedErrorId : InvalidOperationException {code}
> Since the hashes are used within the script, it is easier to replace the line 
> below
>  
> {code:java}
>  $MAVEN_HOME_NAME = 
> ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl)
>  | ForEach-Object {$_.ToString("x2")}) -join '' {code}
> with 
>  
> {code:java}
> $MAVEN_HOME_NAME = 
> ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl)
>  | ForEach-Object {$_.ToString("x2")}) -join '' {code}
> h2. Steps to reproduce
>  * Under 
> {{{}Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy{}}},
>  set {{Enabled}} to {{{}1{}}}.
>  * {{Run only-mvnw.cmd}}
> h2. Caveat
> The FIPS check works with Powershell 5, not Powershell 7. It looks like the 
> new PowerShell does not respect the OS configuration as well. So if the 
> script is run within the new PowerShell, it would succeed due to –or thanks 
> to– this problem.  
> I created an issue on their repository for this problem: 
> https://github.com/PowerShell/PowerShell/issues/24502



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to