I just setup a new computer and installed unreal engine 4.25.3. I tried to create an C++ project and I get the following error when I click “Create Project”.
Running C:/Program Files/Epic Games/UE_4.25/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -project="C:/Users/JimVaughn/Documents/Unreal Projects/MyProject/MyProject.uproject" -game -rocket -progress
Discovering modules, targets and source code for project...
Binding IntelliSense data...
Binding IntelliSense data... 100%
Writing project files...
Writing project files... 67%
ERROR: Unhandled exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.
at System.Security.Cryptography.MD5CryptoServiceProvider..ctor()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Security.Cryptography.CryptoConfig.CreateFromName(String name, Object[] args)
at System.Security.Cryptography.MD5.Create()
at UnrealBuildTool.VCProjectFileGenerator.MakeMd5Guid(Byte[] Input) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\ProjectFiles\VisualStudio\VCProjectFileGenerator.cs:line 421
at UnrealBuildTool.VCProjectFileGenerator.GenerateProjectFolderGuids(String ParentPath, MasterProjectFolder Folder, IDictionary`2 Guids) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\ProjectFiles\VisualStudio\VCProjectFileGenerator.cs:line 410
at UnrealBuildTool.VCProjectFileGenerator.GenerateProjectFolderGuids(MasterProjectFolder RootFolder) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\ProjectFiles\VisualStudio\VCProjectFileGenerator.cs:line 401
at UnrealBuildTool.VCProjectFileGenerator.WriteMasterProjectFile(ProjectFile UBTProject, PlatformProjectGeneratorCollection PlatformProjectGenerators) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\ProjectFiles\VisualStudio\VCProjectFileGenerator.cs:line 519
at UnrealBuildTool.ProjectFileGenerator.WriteProjectFiles(PlatformProjectGeneratorCollection PlatformProjectGenerators) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\ProjectFiles\ProjectFileGenerator.cs:line 2696
at UnrealBuildTool.VCProjectFileGenerator.WriteProjectFiles(PlatformProjectGeneratorCollection PlatformProjectGenerators) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\ProjectFiles\VisualStudio\VCProjectFileGenerator.cs:line 436
at UnrealBuildTool.ProjectFileGenerator.GenerateProjectFiles(PlatformProjectGeneratorCollection PlatformProjectGenerators, String[] Arguments) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\ProjectFiles\ProjectFileGenerator.cs:line 1045
at UnrealBuildTool.GenerateProjectFilesMode.Execute(CommandLineArguments Arguments) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\Modes\GenerateProjectFilesMode.cs:line 198
at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in D:\Build\++UE4+Licensee\Sync\Engine\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.cs:line 550
1. Go to your visual studio installer and open it
2. Go to the "Modify" tab on you current visual studio version
3. Make sure that you have the "Game development with C++" installed.
4. Then Make sure that you have "Unreal Engine Installer" under "Game Development with C++" (It's at the
side
of the installer, make sure you check on "Game Development with C++" in order to see the unreal engine
installer).
I tried this and had everything else installed however I didn’t have the “unreal Engine Installer” checked. I checked it and hit modify but I am still getting the same error .
If you want to make a desktop game make sure that you have development with C++ Desktop installed as well But if you are making a mobile game then install the mobile development instead.
I found a solution. I have FIPS disabled so I am not sure why this occurring. I even checked the key in the registry under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy\enabled and it was set to 0 which is disabled.
The solution for me was to entirely delete HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy entirely and then restart unreal and any visual studio instances you have open.
I can’t turn FIPS off for the environment I’m in. So I’m still getting the FIPS errors.
Is it an UNREAL issue, a .NET issue, and are there things I can change or drop from the code to make this work? I’ve been having these issues when compiling with 4.26.2 with VS2019. I’ve also tried 4.27 and other versions to see what the problem seems to be, but can’t find a solution.
I know this is from long ago, but I found a solution for those who require FIPS to be enabled on their machine. Unreal uses encryption incompatible with FIPS in a few places. I didn’t see this posted anywhere else so I figure I would add this.
The solution for getting packaged builds to work on FIPS enabled machines is as follows:
Open the UnrealBuildTool solution in VisualStudio located in \Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.sln (or csproj file)
Then open \Engine\Source\Programs\UnrealBuildTool\System\ActionHistory.cs
Then change (around line 32)
from: const int HashLength = 16;
In addition, I found a solution for getting Swarm to work for devices that require FIPS:
open the SwarmAgent.sln under \Engine\Source\Programs\UnrealSwarm
Then open \Engine\Source\Programs\UnrealSwarm\Agent\Channels.cs
and change line 122 from: private SHA1Managed SHhash = new SHA1Managed();
to: private SHA1CryptoServiceProvider SHhash = new SHA1CryptoServiceProvider();
then build the solution and run SwarmAgent again. It looks like SHA1Managed is incompatible with FIPS and SHA1CryptoServiceProvider is one that is compatible.