Skip to content

Commit bf4c801

Browse files
committed
Test: adding action to build keytools on windows.
* Update key tools VS project to 2022. * Fix a few warnings in sign.c * Fix issues with windows already having min/max. * Fix (workaround) issue with key tools needing WOLFBOOT_SECTOR_SIZE.
1 parent 2cdc1f5 commit bf4c801

File tree

7 files changed

+82
-31
lines changed

7 files changed

+82
-31
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Build Windows Keytools executables
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches: [ '*' ]
9+
10+
jobs:
11+
build-windows:
12+
runs-on: windows-latest
13+
14+
steps:
15+
# Step 1: Checkout the repository
16+
- name: Checkout Code
17+
uses: actions/checkout@v3
18+
with:
19+
submodules: true
20+
21+
# Step 2: Setup MSBuild
22+
- name: Setup MSBuild
23+
uses: microsoft/setup-msbuild@v1
24+
25+
# Step 3: Build the solution
26+
- name: Build Solution
27+
shell: cmd
28+
run: |
29+
echo #define WOLFBOOT_SECTOR_SIZE 1024 > include\target.h
30+
MSBuild.exe tools\keytools\wolfBootKeyTools.sln /m /p:Configuration=Release /p:Platform="x64"
31+
32+
# Step 4: Upload executables as artifacts
33+
- name: Upload EXE Artifacts
34+
uses: actions/upload-artifact@v3
35+
with:
36+
name: windows-keytools
37+
path: |
38+
tools\keytools\*.exe

include/delta.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,12 @@
3434
*/
3535
#ifndef WOLFBOOT_DELTA_H
3636
#define WOLFBOOT_DELTA_H
37-
#include "target.h"
3837

38+
#include <stdint.h>
39+
40+
#ifndef DELTA_PATCH_BLOCK_SIZE
3941
#define DELTA_PATCH_BLOCK_SIZE 1024
42+
#endif
4043

4144
struct wb_patch_ctx {
4245
uint8_t *src_base;

src/delta.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <stdint.h>
2323
#include <string.h>
2424
#include <delta.h>
25+
#include <target.h> /* WOLFBOOT_SECTOR_SIZE */
2526

2627

2728
#define ESC 0x7f

src/libwolfboot.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,10 @@ static uint32_t ext_cache;
117117
#endif
118118

119119

120-
#if defined(__WOLFBOOT) || defined (UNIT_TEST)
120+
#if defined(__WOLFBOOT) || defined(UNIT_TEST)
121121
#define WOLFSSL_MISC_INCLUDED /* allow misc.c code to be inlined */
122+
#include <wolfssl/wolfcrypt/types.h>
123+
#include <wolfssl/wolfcrypt/wc_port.h>
122124
#include <wolfcrypt/src/misc.c> /* for ByteReverseWord32 */
123125
#if defined(EXT_ENCRYPTED) || defined(UNIT_TEST)
124126
static uint32_t wb_reverse_word32(uint32_t x)

tools/keytools/sign.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1809,7 +1809,7 @@ static int base_diff(const char *f_base, uint8_t *pubkey, uint32_t pubkey_sz, in
18091809
struct stat st;
18101810
void *base = NULL;
18111811
void *buffer = NULL;
1812-
uint8_t dest[WOLFBOOT_SECTOR_SIZE];
1812+
static uint8_t dest[WOLFBOOT_SECTOR_SIZE];
18131813
uint8_t ff = 0xff;
18141814
int r;
18151815
uint32_t blksz = WOLFBOOT_SECTOR_SIZE;
@@ -1887,11 +1887,11 @@ static int base_diff(const char *f_base, uint8_t *pubkey, uint32_t pubkey_sz, in
18871887

18881888
/* Retrieve the hash digest of the base image */
18891889
if (CMD.hash_algo == HASH_SHA256)
1890-
base_hash_sz = sign_tool_find_header(base + 8, HDR_SHA256, &base_hash);
1890+
base_hash_sz = sign_tool_find_header((uint8_t*)base + 8, HDR_SHA256, &base_hash);
18911891
else if (CMD.hash_algo == HASH_SHA384)
1892-
base_hash_sz = sign_tool_find_header(base + 8, HDR_SHA384, &base_hash);
1892+
base_hash_sz = sign_tool_find_header((uint8_t*)base + 8, HDR_SHA384, &base_hash);
18931893
else if (CMD.hash_algo == HASH_SHA3)
1894-
base_hash_sz = sign_tool_find_header(base + 8, HDR_SHA3_384, &base_hash);
1894+
base_hash_sz = sign_tool_find_header((uint8_t*)base + 8, HDR_SHA3_384, &base_hash);
18951895

18961896
#if HAVE_MMAP
18971897
/* Open second image file */
@@ -2656,6 +2656,7 @@ int main(int argc, char** argv)
26562656
CMD.fw_version = argv[i+2];
26572657
}
26582658

2659+
memset(buf, 0, sizeof(buf));
26592660
strncpy((char*)buf, CMD.image_file, sizeof(buf)-1);
26602661
tmpstr = strrchr((char*)buf, '.');
26612662
if (tmpstr) {

tools/keytools/wolfBootKeygenTool.vcxproj

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,32 +22,32 @@
2222
<ProjectGuid>{599F7765-B224-41D4-AA56-597FFA9763BC}</ProjectGuid>
2323
<Keyword>Win32Proj</Keyword>
2424
<RootNamespace>wolfBootKeygenTool</RootNamespace>
25-
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
25+
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
2626
</PropertyGroup>
2727
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
2828
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
2929
<ConfigurationType>Application</ConfigurationType>
3030
<UseDebugLibraries>true</UseDebugLibraries>
31-
<PlatformToolset>v141</PlatformToolset>
31+
<PlatformToolset>v143</PlatformToolset>
3232
<CharacterSet>Unicode</CharacterSet>
3333
</PropertyGroup>
3434
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
3535
<ConfigurationType>Application</ConfigurationType>
3636
<UseDebugLibraries>false</UseDebugLibraries>
37-
<PlatformToolset>v141</PlatformToolset>
37+
<PlatformToolset>v143</PlatformToolset>
3838
<WholeProgramOptimization>true</WholeProgramOptimization>
3939
<CharacterSet>Unicode</CharacterSet>
4040
</PropertyGroup>
4141
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
4242
<ConfigurationType>Application</ConfigurationType>
4343
<UseDebugLibraries>true</UseDebugLibraries>
44-
<PlatformToolset>v141</PlatformToolset>
44+
<PlatformToolset>v143</PlatformToolset>
4545
<CharacterSet>Unicode</CharacterSet>
4646
</PropertyGroup>
4747
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
4848
<ConfigurationType>Application</ConfigurationType>
4949
<UseDebugLibraries>false</UseDebugLibraries>
50-
<PlatformToolset>v141</PlatformToolset>
50+
<PlatformToolset>v143</PlatformToolset>
5151
<WholeProgramOptimization>true</WholeProgramOptimization>
5252
<CharacterSet>Unicode</CharacterSet>
5353
</PropertyGroup>
@@ -72,6 +72,7 @@
7272
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
7373
<LinkIncremental>true</LinkIncremental>
7474
<TargetName>keygen</TargetName>
75+
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
7576
</PropertyGroup>
7677
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
7778
<LinkIncremental>true</LinkIncremental>
@@ -81,10 +82,12 @@
8182
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
8283
<LinkIncremental>false</LinkIncremental>
8384
<TargetName>keygen</TargetName>
85+
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
8486
</PropertyGroup>
8587
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
8688
<LinkIncremental>false</LinkIncremental>
8789
<TargetName>keygen</TargetName>
90+
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
8891
</PropertyGroup>
8992
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
9093
<ClCompile>
@@ -93,7 +96,7 @@
9396
<WarningLevel>Level3</WarningLevel>
9497
<Optimization>Disabled</Optimization>
9598
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
96-
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
99+
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;WOLFSSL_HAVE_MIN;WOLFSSL_HAVE_MAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
97100
</ClCompile>
98101
<Link>
99102
<SubSystem>Console</SubSystem>
@@ -107,7 +110,7 @@
107110
<WarningLevel>Level3</WarningLevel>
108111
<Optimization>Disabled</Optimization>
109112
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
110-
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
113+
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;WOLFSSL_HAVE_MIN;WOLFSSL_HAVE_MAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
111114
</ClCompile>
112115
<Link>
113116
<SubSystem>Console</SubSystem>
@@ -123,7 +126,7 @@
123126
<FunctionLevelLinking>true</FunctionLevelLinking>
124127
<IntrinsicFunctions>true</IntrinsicFunctions>
125128
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
126-
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
129+
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;WOLFSSL_HAVE_MIN;WOLFSSL_HAVE_MAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
127130
</ClCompile>
128131
<Link>
129132
<SubSystem>Console</SubSystem>
@@ -141,7 +144,7 @@
141144
<FunctionLevelLinking>true</FunctionLevelLinking>
142145
<IntrinsicFunctions>true</IntrinsicFunctions>
143146
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
144-
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
147+
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;WOLFSSL_HAVE_MIN;WOLFSSL_HAVE_MAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
145148
</ClCompile>
146149
<Link>
147150
<SubSystem>Console</SubSystem>
@@ -180,4 +183,4 @@
180183
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
181184
<ImportGroup Label="ExtensionTargets">
182185
</ImportGroup>
183-
</Project>
186+
</Project>

tools/keytools/wolfBootSignTool.vcxproj

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,32 +22,32 @@
2222
<ProjectGuid>{0E5B9C81-CA2B-47CA-BA83-074078CF3393}</ProjectGuid>
2323
<Keyword>Win32Proj</Keyword>
2424
<RootNamespace>wolfBootSignTool</RootNamespace>
25-
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
25+
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
2626
</PropertyGroup>
2727
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
2828
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
2929
<ConfigurationType>Application</ConfigurationType>
3030
<UseDebugLibraries>true</UseDebugLibraries>
31-
<PlatformToolset>v141</PlatformToolset>
31+
<PlatformToolset>v143</PlatformToolset>
3232
<CharacterSet>Unicode</CharacterSet>
3333
</PropertyGroup>
3434
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
3535
<ConfigurationType>Application</ConfigurationType>
3636
<UseDebugLibraries>false</UseDebugLibraries>
37-
<PlatformToolset>v141</PlatformToolset>
37+
<PlatformToolset>v143</PlatformToolset>
3838
<WholeProgramOptimization>true</WholeProgramOptimization>
3939
<CharacterSet>Unicode</CharacterSet>
4040
</PropertyGroup>
4141
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
4242
<ConfigurationType>Application</ConfigurationType>
4343
<UseDebugLibraries>true</UseDebugLibraries>
44-
<PlatformToolset>v141</PlatformToolset>
44+
<PlatformToolset>v143</PlatformToolset>
4545
<CharacterSet>Unicode</CharacterSet>
4646
</PropertyGroup>
4747
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
4848
<ConfigurationType>Application</ConfigurationType>
4949
<UseDebugLibraries>false</UseDebugLibraries>
50-
<PlatformToolset>v141</PlatformToolset>
50+
<PlatformToolset>v143</PlatformToolset>
5151
<WholeProgramOptimization>true</WholeProgramOptimization>
5252
<CharacterSet>Unicode</CharacterSet>
5353
</PropertyGroup>
@@ -72,6 +72,7 @@
7272
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
7373
<LinkIncremental>true</LinkIncremental>
7474
<TargetName>sign</TargetName>
75+
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
7576
</PropertyGroup>
7677
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
7778
<LinkIncremental>true</LinkIncremental>
@@ -81,19 +82,21 @@
8182
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
8283
<LinkIncremental>false</LinkIncremental>
8384
<TargetName>sign</TargetName>
85+
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
8486
</PropertyGroup>
8587
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
8688
<LinkIncremental>false</LinkIncremental>
8789
<TargetName>sign</TargetName>
90+
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
8891
</PropertyGroup>
8992
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
9093
<ClCompile>
9194
<PrecompiledHeader>
9295
</PrecompiledHeader>
9396
<WarningLevel>Level3</WarningLevel>
9497
<Optimization>Disabled</Optimization>
95-
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;DELTA_UPDATES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
96-
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
98+
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;DELTA_UPDATES;WOLFSSL_HAVE_MIN;WOLFSSL_HAVE_MAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
99+
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
97100
</ClCompile>
98101
<Link>
99102
<SubSystem>Console</SubSystem>
@@ -106,8 +109,8 @@
106109
</PrecompiledHeader>
107110
<WarningLevel>Level3</WarningLevel>
108111
<Optimization>Disabled</Optimization>
109-
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;DELTA_UPDATES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110-
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
112+
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;DELTA_UPDATES;WOLFSSL_HAVE_MIN;WOLFSSL_HAVE_MAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
113+
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
111114
</ClCompile>
112115
<Link>
113116
<SubSystem>Console</SubSystem>
@@ -122,8 +125,8 @@
122125
<Optimization>MaxSpeed</Optimization>
123126
<FunctionLevelLinking>true</FunctionLevelLinking>
124127
<IntrinsicFunctions>true</IntrinsicFunctions>
125-
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;DELTA_UPDATES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
126-
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
128+
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;DELTA_UPDATES;WOLFSSL_HAVE_MIN;WOLFSSL_HAVE_MAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
129+
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
127130
</ClCompile>
128131
<Link>
129132
<SubSystem>Console</SubSystem>
@@ -140,8 +143,8 @@
140143
<Optimization>MaxSpeed</Optimization>
141144
<FunctionLevelLinking>true</FunctionLevelLinking>
142145
<IntrinsicFunctions>true</IntrinsicFunctions>
143-
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;DELTA_UPDATES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
144-
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
146+
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;DELTA_UPDATES;WOLFSSL_HAVE_MIN;WOLFSSL_HAVE_MAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
147+
<AdditionalIncludeDirectories>.;../../lib/wolfssl;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
145148
</ClCompile>
146149
<Link>
147150
<SubSystem>Console</SubSystem>
@@ -151,7 +154,7 @@
151154
</Link>
152155
</ItemDefinitionGroup>
153156
<ItemGroup>
154-
<ClCompile Include="..\..\lib\wolfssl\wolfcrypt\src\aes.c" />
157+
<ClCompile Include="..\..\lib\wolfssl\wolfcrypt\src\aes.c" />
155158
<ClCompile Include="..\..\lib\wolfssl\wolfcrypt\src\asn.c" />
156159
<ClCompile Include="..\..\lib\wolfssl\wolfcrypt\src\chacha.c" />
157160
<ClCompile Include="..\..\lib\wolfssl\wolfcrypt\src\coding.c" />
@@ -187,4 +190,4 @@
187190
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
188191
<ImportGroup Label="ExtensionTargets">
189192
</ImportGroup>
190-
</Project>
193+
</Project>

0 commit comments

Comments
 (0)