X25519 ソフトウェア実装のテストスイート統合

新規ヘッダー:include/se050_x25519_sw.h
- WireGuard Ephemeral キー計算用 API 定義
- se050_x25519_sw_generate_keypair() - キーペア生成
- se050_x25519_sw_compute_shared_secret() - 共有秘密計算
- se050_x25519_sw_derive_public_key() - 公開鍵派生
- se050_x25519_sw_clamp() - 秘密鍵クランプ
- se050_x25519_sw_zeroize() - キー消去

ソース修正:src/se050_x25519_sw.c
- main() 関数をテストスイートに統合
- 独立した API 関数として再構成
- X25519_SW_TEST マクロでテストビルド可能

テスト追加:tests/test_x25519_ecdh.c
- テスト 7: ソフトウェアキーペア生成
- テスト 8: ECDH 対称性検証
- テスト 9: 公開鍵派生
- テスト 10: キーゼロ化

Makefile 更新:
- test_x25519_sw タスク追加
- make test で全テスト実行

注:RFC 7748 テストベクトル検証中(実装修正必要)
This commit is contained in:
km
2026-03-26 16:12:55 +09:00
parent feb99ffe4e
commit d34fed2048
4 changed files with 348 additions and 38 deletions
+10 -2
View File
@@ -12,6 +12,7 @@ SRCS = src/se050_i2c_hal.c \
src/se050_keystore.c \
src/se050_rng.c \
src/se050_x25519.c \
src/se050_x25519_sw.c \
src/se050_scp03.c \
src/se050_scp03_keys.c
@@ -28,7 +29,7 @@ TEST_HARDWARE = test_scp03_hardware
TEST_SE050 = test_scp03_se050
TEST_X25519 = test_x25519_ecdh
TEST_KEY_ROTATION = test_key_rotation
TEST_KEY_ROTATION = test_key_rotation
TEST_X25519_SW = test_x25519_sw
# Target library
LIB = libse050_wireguard.a
@@ -53,7 +54,7 @@ else
endif
# Default target
all: $(LIB) $(TEST_SCP03) $(TEST_HARDWARE) $(TEST_SE050) $(TEST_X25519)
all: $(LIB) $(TEST_SCP03) $(TEST_HARDWARE) $(TEST_SE050) $(TEST_X25519) $(TEST_X25519_SW)
# Create build directory
build:
@@ -88,6 +89,10 @@ $(TEST_KEY_ROTATION): tests/test_scp03_key_rotation.c $(LIB)
@mkdir -p build
$(CC) $(CFLAGS) -DSE050_CHIP=$(CHIP_ID) -o build/$@ $< build/$(LIB) $(LDFLAGS)
# Software X25519 test (standalone, no library needed)
$(TEST_X25519_SW): src/se050_x25519_sw.c
@mkdir -p build
$(CC) $(CFLAGS) -DX25519_SW_TEST -o build/$@ $<
# Compile source files
src/%.o: src/%.c
@@ -108,6 +113,9 @@ test: all
@echo "Running X25519 ECDH tests..."
./build/$(TEST_X25519)
@echo ""
@echo "Running Software X25519 tests..."
./build/$(TEST_X25519_SW)
@echo ""
@echo "Note: To run SE050 hardware tests, use:"
@echo " make SE050_CHIP=SE050C1 test_se050"