Skip to content

Commit fadc529

Browse files
author
Shingo Morimoto
committed
Fixed for sp_c64.c to be available.
1 parent e93fc7f commit fadc529

File tree

13 files changed

+135
-107
lines changed

13 files changed

+135
-107
lines changed

embedded/signature/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This directory includes the following examples under the sub-directories.Each ha
66
|---|---|---|
77
|RSA|rsa_vfy_only |verify signature|
88
||rsa_buffer|sign/verify signature |
9-
|ECDSA|signature/ecc-sign-verify/ecc_sign_verify.c|sign msg and verify signature|
9+
|ECDSA|signature/ecc-sign-verify/|sign msg and verify signature|
1010

1111
You can specify a target function of Simple example, Benchemark or Memory track program.It also has options for optimized code for MCU architectures such as Intel x86, ARM64 or a generic code by default, as well as Math library of Single Precision or TFM.
1212

@@ -27,13 +27,15 @@ $ make <Function> math=<Mathlib> arch=<MCU>
2727
|math|Description|
2828
|---|---|
2929
|Default|Generic architecture by pure C language source code|
30-
|sp| SP for specified archtecture|
30+
|sp| SP for generic or specified archtecture|
3131
|tfm|TFM for generic architecture|
3232
## MCU Architectures
3333
NOTE: No architecture specification is required when using TFM.
3434
|arch|Description|
3535
|---|---|
3636
|Default|Generic architecture by pure C language source code|
37+
|c32| SP using 32-bit data type |
38+
|c64| SP using 64-bit data type (default) |
3739
|arm64|SP for ARM64 |
3840
|x64|SP for x86 64bit|
3941

embedded/signature/ecc-sign-verify/Makefile

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
WOLFROOT = ../../../../wolfssl
22

3-
CFLAGS = -DWOLFSSL_USER_SETTINGS -I. -I$(WOLFROOT) -Os
3+
CFLAGS = $(EX_CFLAGS) -DWOLFSSL_USER_SETTINGS -I. -I$(WOLFROOT) -Os
44
ASFLAGS = -DWOLFSSL_USER_SETTINGS -I. -I$(WOLFROOT)
55

66
OBJ=\
@@ -14,7 +14,6 @@ OBJ=\
1414
$(WOLFROOT)/wolfcrypt/src/memory.o\
1515
$(WOLFROOT)/wolfcrypt/src/wolfmath.o\
1616

17-
1817
OBJ_SP_C32 := \
1918
$(WOLFROOT)/wolfcrypt/src/sp_int.o\
2019
$(WOLFROOT)/wolfcrypt/src/sp_c32.o\
@@ -27,7 +26,6 @@ OBJ_SP_ARM64 := \
2726
$(WOLFROOT)/wolfcrypt/src/sp_int.o\
2827
$(WOLFROOT)/wolfcrypt/src/sp_arm64.o\
2928

30-
3129
OBJ_SP_X86_64 := \
3230
$(WOLFROOT)/wolfcrypt/src/sp_int.o\
3331
$(WOLFROOT)/wolfcrypt/src/cpuid.o\
@@ -37,7 +35,7 @@ OBJ_SP_X86_64 := \
3735
OBJ_TFM := \
3836
$(WOLFROOT)/wolfcrypt/src/tfm.o\
3937

40-
.PHONY: all clean mem size
38+
.PHONY: all clean mem size bench
4139

4240
ifeq ($(math) $(arch),sp x64)
4341
ASFLAGS+= -DSP_X86_64_FLAG
@@ -55,22 +53,22 @@ else ifeq ($(math), tfm)
5553
CFLAGS += -DTFM_FLAG
5654
OBJ += $(OBJ_TFM)
5755
else
58-
CFLAGS += -DSP_FLAG
56+
CFLAGS += -DSP_C64_FLAG
5957
OBJ += $(OBJ_SP_C64)
6058
endif
6159

62-
all : ecc_sign_verify bench
63-
mem:CFLAGS+= -DDEBUG_MEMORY
64-
mem: ecc_sign_verify
60+
all : ecc_sign_verify bench mem
6561

6662
ecc_sign_verify: $(OBJ)
6763
$(CC) $(CFLAGS) -o ecc_sign_verify ecc_sign_verify.c $(OBJ)
6864

6965
bench: $(OBJ)
70-
$(CC) $(CFLAGS) -DBENCHMARK -o bench ecc_sign_verify.c $(OBJ)
66+
$(CC) $(CFLAGS) -DBENCHMARK -o ecc_sign_verify_bench ecc_sign_verify.c $(OBJ)
7167

68+
mem: $(OBJ)
69+
$(CC) $(CFLAGS) -DDEBUG_MEMORY -o ecc_sign_verify_mem ecc_sign_verify.c $(OBJ)
7270
clean:
73-
rm -f ecc_sign_verify bench $(WOLFROOT)/wolfcrypt/src/*.o
71+
rm -f ecc_sign_verify ecc_sign_verify_bench ecc_sign_verify_mem $(WOLFROOT)/wolfcrypt/src/*.o
7472

7573
size :
7674
size $(OBJ) ecc_sign_verify

embedded/signature/ecc-sign-verify/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ make bench math=tfm
6767
NOTE: When using TFM, No Architecture specification is required.
6868

6969
## Example Output
70-
built with the option `math=sp arch=arm64`
70+
- built with the option `math=sp arch=arm64`
7171
```
72-
./bench
72+
./ecc_sign_verify_bench
7373
---------------------------------------------------------------
7474
Enabled WOLFSSL_SP_ARM64
7575
---------------------------------------------------------------
@@ -95,7 +95,7 @@ make mem
9595
```
9696
## Example Output
9797
```
98-
./ecc_sign_verify
98+
./ecc_sign_verify_mem
9999
Key size is 112, byteField = 14
100100
Successfully verified signature w/ ecc key size 112!
101101
Key size is 128, byteField = 16
@@ -121,10 +121,10 @@ Successfully verified signature w/ ecc key size 521!
121121
122122
total Allocs = 522
123123
total Deallocs = 522
124-
total Bytes = 225047
125-
peak Bytes = 5161
124+
total Bytes = 243047
125+
peak Bytes = 5557
126126
current Bytes = 0
127-
stack used = 16752
127+
stack used = 14448
128128
```
129129

130130

embedded/signature/ecc-sign-verify/ecc_sign_verify.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
*/
2121

2222
#include <stdio.h>
23-
#include <wolfssl/options.h>
24-
23+
#include <wolfssl/wolfcrypt/settings.h>
2524
#include <wolfssl/ssl.h>
2625
#include <wolfssl/wolfcrypt/ecc.h>
2726
#include <wolfssl/wolfcrypt/signature.h>
@@ -71,6 +70,7 @@ int ecc_sign_verify(void)
7170
{
7271
int ret = 0;
7372
#ifdef DEBUG_MEMORY
73+
wolfCrypt_Init();
7474
InitMemoryTracker();
7575
#endif
7676
ret = do_sig_ver_test(ECC_KEY_SIZE_112);
@@ -102,6 +102,7 @@ int ecc_sign_verify(void)
102102
printf("\n");
103103
ShowMemoryTracker();
104104
CleanupMemoryTracker();
105+
wolfCrypt_Cleanup();
105106
#endif
106107
return ret;
107108
}
@@ -149,8 +150,6 @@ int do_sig_ver_test(int eccKeySz)
149150
printf("Failed to allocate sig buff\n");
150151
return -1001;
151152
}
152-
153-
wolfCrypt_Init();
154153

155154

156155

@@ -205,7 +204,6 @@ printf("Successfully verified signature w/ ecc key size %d!\n", eccKeySz);
205204
wc_ecc_free(&key);
206205
sig_done:
207206
XFREE(sig, NULL, DYNAMIC_TYPE_TMP_BUFFER);
208-
209207
return ret;
210208
}
211209

@@ -229,12 +227,14 @@ static void hexdump(const void *buffer, word32 len, byte cols)
229227
int main(){
230228
#ifdef BENCHMARK
231229
printf("---------------------------------------------------------------\n");
232-
#if defined(WOLFSSL_HAVE_SP_ECC) && !defined(SP_X86_64_FLAG) && !defined(SP_ARM64_FLAG)
233-
printf("Enabled WOLFSSL_HAVE_SP_ECC \n");
230+
#if defined(SP_C64_FLAG)
231+
printf("Enabled 64-bit SP \n");
232+
#elif defined(SP_C32_FLAG)
233+
printf("Enabled 32-bit SP \n");
234234
#elif defined(SP_X86_64_FLAG)
235-
printf("Enabled WOLFSSL_SP_X86_64\n");
235+
printf("Enabled SP for x86_64\n");
236236
#elif defined(SP_ARM64_FLAG)
237-
printf("Enabled WOLFSSL_SP_ARM64\n");
237+
printf("Enabled SP for Arm64\n");
238238
#elif defined(TFM_FLAG)
239239
printf("Enabled TFM \n");
240240
#endif

embedded/signature/ecc-sign-verify/user_settings.h

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,32 +28,28 @@
2828

2929

3030
#ifdef DEBUG_MEMORY
31-
// #define WOLFSSL_TRACK_MEMORY
31+
#define WOLFSSL_TRACK_MEMORY
3232
#define HAVE_STACK_SIZE
33-
#define WOLFSSL_DEBUG_MEMORY
33+
// #define WOLFSSL_DEBUG_MEMORY
3434
// #define WOLFSSL_DEBUG_MEMORY_PRINT
35+
#undef BENCHMARK
3536
#endif
3637

3738

38-
#ifdef SP_FLAG
39+
40+
#ifdef SP_C32_FLAG
3941
#define WOLFSSL_HAVE_SP_ECC
40-
#define WOLFSSL_SP_MATH
42+
#define WOLFSSL_SP_MATH_ALL
43+
#define SP_WORD_SIZE 32
4144
#undef USE_FAST_MATH
4245
#endif
4346

44-
#if defined(SP_C32_FLAG)
45-
#define WOLFSSL_HAVE_SP_ECC
46-
#define WOLFSSL_SP_MATH
47-
#define WOLFSSL_SP_MATH_ALL
48-
#undef USE_FAST_MATH
49-
#endif
50-
51-
#if defined(SP_C64_FLAG)
52-
#define WOLFSSL_HAVE_SP_ECC
53-
#define WOLFSSL_SP_MATH
54-
#define WOLFSSL_SP_MATH_ALL
55-
#define SP_WORD_SIZE 64
56-
#undef USE_FAST_MATH
47+
#ifdef SP_C64_FLAG
48+
#define WOLFSSL_HAVE_SP_ECC
49+
#define WOLFSSL_SP_MATH_ALL
50+
#define SP_WORD_SIZE 64
51+
#define HAVE___UINT128_T
52+
#undef USE_FAST_MATH
5753
#endif
5854

5955
#ifdef SP_ARM64_FLAG

embedded/signature/rsa_buffer/Makefile

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
WOLFROOT = ../../../../wolfssl
22

3-
CFLAGS =-DWOLFSSL_USER_SETTINGS -I. -I$(WOLFROOT) -Os
3+
CFLAGS = $(EX_CFLAGS) -DWOLFSSL_USER_SETTINGS -I. -I$(WOLFROOT) -Os
44
ASFLAGS=-DWOLFSSL_USER_SETTINGS -I. -I$(WOLFROOT)
55

66
OBJ = \
@@ -17,6 +17,10 @@ OBJ_SP_C32 := \
1717
$(WOLFROOT)/wolfcrypt/src/sp_int.o\
1818
$(WOLFROOT)/wolfcrypt/src/sp_c32.o\
1919

20+
OBJ_SP_C64 := \
21+
$(WOLFROOT)/wolfcrypt/src/sp_int.o\
22+
$(WOLFROOT)/wolfcrypt/src/sp_c64.o\
23+
2024
OBJ_SP_ARM64 := \
2125
$(WOLFROOT)/wolfcrypt/src/sp_int.o\
2226
$(WOLFROOT)/wolfcrypt/src/sp_arm64.o\
@@ -33,34 +37,39 @@ OBJ_TFM := \
3337
$(WOLFROOT)/wolfcrypt/src/tfm.o\
3438

3539

36-
.PHONY: all clean mem size
40+
.PHONY: all clean size mem bench
3741

3842
ifeq ($(math) $(arch),sp x64)
3943
ASFLAGS+= -DSP_X86_64_FLAG
4044
OBJ += $(OBJ_SP_X86_64)
4145
else ifeq ($(math) $(arch),sp arm64)
4246
CFLAGS += -DSP_ARM64_FLAG
4347
OBJ += $(OBJ_SP_ARM64)
48+
else ifeq ($(math) $(arch),sp c64)
49+
CFLAGS += -DSP_C64_FLAG
50+
OBJ += $(OBJ_SP_C64)
51+
else ifeq ($(math) $(arch),sp c32)
52+
CFLAGS += -DSP_C32_FLAG
53+
OBJ += $(OBJ_SP_C32)
4454
else ifeq ($(math), tfm)
4555
CFLAGS += -DTFM_FLAG
4656
OBJ += $(OBJ_TFM)
4757
else
48-
CFLAGS += -DSP_FLAG
49-
OBJ += $(OBJ_SP_C32)
58+
CFLAGS += -DSP_C64_FLAG
59+
OBJ += $(OBJ_SP_C64)
5060
endif
5161

52-
all: verify sign bench
53-
54-
mem:CFLAGS+= -DDEBUG_MEMORY
55-
mem: verify sign
62+
all: verify sign bench mem
5663

5764
verify: $(OBJ)
5865
$(CC) $(CFLAGS) -o verify verify.c $(OBJ)
5966
sign: $(OBJ)
6067
$(CC) $(CFLAGS) -o sign sign.c $(OBJ)
6168
bench: $(OBJ)
62-
$(CC) $(CFLAGS) -DBENCHMARK -o bench verify.c $(OBJ)
69+
$(CC) $(CFLAGS) -DBENCHMARK -o verify_bench verify.c $(OBJ)
70+
mem: $(OBJ)
71+
$(CC) $(CFLAGS) -DDEBUG_MEMORY -o verify_mem verify.c $(OBJ)
6372
clean:
64-
rm -f verify sign bench $(WOLFROOT)/wolfcrypt/src/*.o
73+
rm -f sign verify verify_bench verify_mem $(WOLFROOT)/wolfcrypt/src/*.o
6574
size :
66-
size $(OBJ)
75+
size $(OBJ) sign verify

embedded/signature/rsa_buffer/README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ make bench math=tfm
4343
```
4444
NOTE: When using TFM, No Architecture specification is required.
4545
## Example Output
46-
built with the option `math=sp arch=arm64`
46+
- built with the option `math=sp arch=arm64`
4747
```
48-
./bench
48+
./verify_bench
4949
---------------------------------------------------------------
5050
Enabled WOLFSSL_SP_ARM64
5151
---------------------------------------------------------------
@@ -56,8 +56,9 @@ Finished Benchmark
5656
```
5757

5858

59-
built with the option `math=tfm`
59+
- built with the option `math=tfm`
6060
```
61+
./verify_bench
6162
---------------------------------------------------------------
6263
Enabled TFM
6364
---------------------------------------------------------------
@@ -75,14 +76,14 @@ make mem
7576
```
7677
## Example Output
7778
```
78-
./verify
79+
./verify_mem
7980
Verified
8081
total Allocs = 0
8182
total Deallocs = 0
8283
total Bytes = 0
8384
peak Bytes = 0
8485
current Bytes = 0
85-
stack used = 13528
86+
stack used = 12392
8687
```
8788

8889

embedded/signature/rsa_buffer/user_settings.h

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
#define WOLFSSL_NO_ASN_STRICT
2626

2727

28-
29-
30-
3128
#ifdef DEBUG_MEMORY
3229
#define WOLFSSL_TRACK_MEMORY
3330
#define HAVE_STACK_SIZE
@@ -36,16 +33,23 @@
3633
#endif
3734

3835

39-
#ifdef SP_FLAG /* Use multi-platform SP (sp_c32.c) by default*/
36+
#ifdef SP_C32_FLAG /* Use multi-platform SP (sp_c32.c) by default*/
4037
#define WOLFSSL_HAVE_SP_RSA
41-
#define WOLFSSL_SP_MATH
4238
#define WOLFSSL_SP_MATH_ALL
4339
#undef USE_FAST_MATH
4440
#endif
4541

42+
#ifdef SP_C64_FLAG
43+
#define WOLFSSL_HAVE_SP_RSA
44+
#define WOLFSSL_SP_MATH_ALL
45+
#define SP_WORD_SIZE 64
46+
#define HAVE___UINT128_T
47+
#undef USE_FAST_MATH
48+
49+
#endif
50+
4651
#ifdef SP_ARM64_FLAG
4752
#define WOLFSSL_HAVE_SP_RSA
48-
#define WOLFSSL_SP_MATH
4953
#define WOLFSSL_SP_MATH_ALL
5054
#define WOLFSSL_SP_ARM64
5155
#define WOLFSSL_SP_ARM64_ASM
@@ -54,7 +58,6 @@
5458

5559
#ifdef SP_X86_64_FLAG
5660
#define WOLFSSL_HAVE_SP_RSA
57-
#define WOLFSSL_SP_MATH
5861
#define WOLFSSL_SP_MATH_ALL
5962
#define WOLFSSL_SP_X86_64
6063
#define WOLFSSL_SP_X86_64_ASM

0 commit comments

Comments
 (0)