Skip to content

Commit 4c7ca0e

Browse files
authored
Merge pull request #851 from lealem47/vs_fips
Add FIPS configurations to Visual Studio project
2 parents 3636446 + 1adcdeb commit 4c7ca0e

File tree

12 files changed

+2613
-12
lines changed

12 files changed

+2613
-12
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ Debug
103103
Release
104104
DLL Debug
105105
DLL Release
106+
DebugFIPS
107+
ReleaseFIPS
108+
DLL DebugFIPS
109+
DLL ReleaseFIPS
106110

107111
# Eclipse
108112
.cproject

ide/winvs/README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,40 @@ To stop the service run the following in an adminstrator power shell session:
7171

7272
To delete the service run
7373
`sc.exe delete wolfSSHd`
74+
75+
76+
FIPS Build Configurations
77+
-------------------------
78+
79+
The solution includes FIPS build configurations to support building wolfSSH
80+
with the FIPS build of wolfSSL. These configurations are designed to work
81+
with wolfSSL FIPS builds that are located in the `IDE\WIN10` directory
82+
structure.
83+
84+
The following FIPS configurations are available:
85+
86+
- **DebugFIPS** (Win32 and x64): For debugging FIPS builds using static libraries
87+
- **ReleaseFIPS** (Win32 and x64): For release FIPS builds using static libraries
88+
- **DLL DebugFIPS** (Win32 and x64): For debugging FIPS builds using dynamic libraries
89+
- **DLL ReleaseFIPS** (Win32 and x64): For release FIPS builds using dynamic libraries
90+
91+
### Matching wolfSSL FIPS Builds
92+
93+
When building wolfSSH with FIPS configurations, ensure that the corresponding
94+
wolfSSL FIPS build is available.
95+
96+
If you build the wolfSSL FIPS code in the **Release x64** configuration,
97+
then you should build wolfSSH with the **ReleaseFIPS x64** configuration.
98+
99+
Similarly:
100+
- wolfSSL **Debug x64** → wolfSSH **DebugFIPS x64**
101+
- wolfSSL **Release Win32** → wolfSSH **ReleaseFIPS Win32**
102+
- wolfSSL **DLL Release x64** → wolfSSH **DLL ReleaseFIPS x64**
103+
104+
**Notes:**
105+
* wolfSSH examples and applications might initially fail because the FIPS Integrity
106+
hash is incorrect, you'll have to rebuild wolfSSL with the FIPS hash reported by the
107+
wolfSSH application to get this working.
108+
* To stabilize the FIPS hash on Windows, you might have to disable ASLR
109+
(Address space layout randomization) on the system.
110+

ide/winvs/api-test/api-test.vcxproj

Lines changed: 309 additions & 1 deletion
Large diffs are not rendered by default.

ide/winvs/client/client.vcxproj

Lines changed: 310 additions & 2 deletions
Large diffs are not rendered by default.

ide/winvs/echoserver/echoserver.vcxproj

Lines changed: 310 additions & 2 deletions
Large diffs are not rendered by default.

ide/winvs/testsuite/testsuite.vcxproj

Lines changed: 310 additions & 2 deletions
Large diffs are not rendered by default.

ide/winvs/unit-test/unit-test.vcxproj

Lines changed: 309 additions & 1 deletion
Large diffs are not rendered by default.

ide/winvs/wolfsftp-client/wolfsftp-client.vcxproj

Lines changed: 309 additions & 1 deletion
Large diffs are not rendered by default.

ide/winvs/wolfssh.props

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,19 @@
77
<wolfCryptRelease32>$(wolfCryptDir)\Release\Win32</wolfCryptRelease32>
88
<wolfCryptDebug64>$(wolfCryptDir)\Debug\x64</wolfCryptDebug64>
99
<wolfCryptRelease64>$(wolfCryptDir)\Release\x64</wolfCryptRelease64>
10+
<wolfCryptDebug32FIPS>$(wolfCryptDir)\IDE\WIN10\Debug\Win32</wolfCryptDebug32FIPS>
11+
<wolfCryptRelease32FIPS>$(wolfCryptDir)\IDE\WIN10\Release\Win32</wolfCryptRelease32FIPS>
12+
<wolfCryptDebug64FIPS>$(wolfCryptDir)\IDE\WIN10\Debug\x64</wolfCryptDebug64FIPS>
13+
<wolfCryptRelease64FIPS>$(wolfCryptDir)\IDE\WIN10\Release\x64</wolfCryptRelease64FIPS>
1014
<wolfCryptDllDebug32>$(wolfCryptDir)\DLL Debug\Win32</wolfCryptDllDebug32>
1115
<wolfCryptDllRelease32>$(wolfCryptDir)\DLL Release\Win32</wolfCryptDllRelease32>
1216
<wolfCryptDllDebug64>$(wolfCryptDir)\DLL Debug\x64</wolfCryptDllDebug64>
1317
<wolfCryptDllRelease64>$(wolfCryptDir)\DLL Release\x64</wolfCryptDllRelease64>
14-
</PropertyGroup>
18+
<wolfCryptDllDebug32FIPS>$(wolfCryptDir)\IDE\WIN10\DLL Debug\Win32</wolfCryptDllDebug32FIPS>
19+
<wolfCryptDllRelease32FIPS>$(wolfCryptDir)\IDE\WIN10\DLL Release\Win32</wolfCryptDllRelease32FIPS>
20+
<wolfCryptDllDebug64FIPS>$(wolfCryptDir)\IDE\WIN10\DLL Debug\x64</wolfCryptDllDebug64FIPS>
21+
<wolfCryptDllRelease64FIPS>$(wolfCryptDir)\IDE\WIN10\DLL Release\x64</wolfCryptDllRelease64FIPS>
22+
</PropertyGroup>
1523
<ItemDefinitionGroup />
1624
<ItemGroup>
1725
<BuildMacro Include="wolfCryptDir">
@@ -29,6 +37,18 @@
2937
<BuildMacro Include="wolfCryptRelease64">
3038
<Value>$(wolfCryptRelease64)</Value>
3139
</BuildMacro>
40+
<BuildMacro Include="wolfCryptDebug32FIPS">
41+
<Value>$(wolfCryptDebug32FIPS)</Value>
42+
</BuildMacro>
43+
<BuildMacro Include="wolfCryptRelease32FIPS">
44+
<Value>$(wolfCryptRelease32FIPS)</Value>
45+
</BuildMacro>
46+
<BuildMacro Include="wolfCryptDebug64FIPS">
47+
<Value>$(wolfCryptDebug64FIPS)</Value>
48+
</BuildMacro>
49+
<BuildMacro Include="wolfCryptRelease64FIPS">
50+
<Value>$(wolfCryptRelease64FIPS)</Value>
51+
</BuildMacro>
3252
<BuildMacro Include="wolfCryptDllDebug32">
3353
<Value>$(wolfCryptDllDebug32)</Value>
3454
</BuildMacro>
@@ -41,5 +61,17 @@
4161
<BuildMacro Include="wolfCryptDllRelease64">
4262
<Value>$(wolfCryptDllRelease64)</Value>
4363
</BuildMacro>
64+
<BuildMacro Include="wolfCryptDllDebug32FIPS">
65+
<Value>$(wolfCryptDllDebug32FIPS)</Value>
66+
</BuildMacro>
67+
<BuildMacro Include="wolfCryptDllRelease32FIPS">
68+
<Value>$(wolfCryptDllRelease32FIPS)</Value>
69+
</BuildMacro>
70+
<BuildMacro Include="wolfCryptDllDebug64FIPS">
71+
<Value>$(wolfCryptDllDebug64FIPS)</Value>
72+
</BuildMacro>
73+
<BuildMacro Include="wolfCryptDllRelease64FIPS">
74+
<Value>$(wolfCryptDllRelease64FIPS)</Value>
75+
</BuildMacro>
4476
</ItemGroup>
4577
</Project>

0 commit comments

Comments
 (0)