mirror of
https://github.com/rvtr/ctr_eFuse.git
synced 2025-11-02 00:11:04 -04:00
・SFMTのパッケージおよびコードをツリーから削除。
・GenarateECCKeyPairの引数修正 git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_eFuse@33 ff987cc8-cf2f-4642-8568-d52cce064691
This commit is contained in:
parent
1685d4ae68
commit
6c97e11eea
17
Makefile
17
Makefile
@ -4,14 +4,13 @@
|
|||||||
# nm generate_id.o | grep " [T|B|D] "
|
# nm generate_id.o | grep " [T|B|D] "
|
||||||
# nm ../rsa_keysrcgen/rsa1_key.o | grep " [T|B|D] "
|
# nm ../rsa_keysrcgen/rsa1_key.o | grep " [T|B|D] "
|
||||||
|
|
||||||
|
|
||||||
# 最終的なビルドスイッチの設定は、以下の通り。
|
# 最終的なビルドスイッチの設定は、以下の通り。
|
||||||
# DEV_CYGWIN = FALSE
|
# DEV_CYGWIN = FALSE
|
||||||
# USE_HSM = TRUE
|
# USE_HSM = TRUE
|
||||||
# USE_SFMT = XX
|
|
||||||
|
|
||||||
DEV_CYGWIN = TRUE
|
DEV_CYGWIN = TRUE
|
||||||
#USE_HSM = TRUE
|
#USE_HSM = TRUE
|
||||||
USE_SFMT = TRUE
|
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(USE_HSM),TRUE)
|
ifeq ($(USE_HSM),TRUE)
|
||||||
@ -76,8 +75,6 @@ PACKAGE_DIR = ./package
|
|||||||
# OPENSSL_DIR = ./openssl-1.0.0-beta2
|
# OPENSSL_DIR = ./openssl-1.0.0-beta2
|
||||||
OPENSSL_DIR = ./openssl-0.9.8k
|
OPENSSL_DIR = ./openssl-0.9.8k
|
||||||
|
|
||||||
SFMT_DIR = ./SFMT-src-1.3.3
|
|
||||||
|
|
||||||
TARGET = gen_id
|
TARGET = gen_id
|
||||||
|
|
||||||
KEYS_C = cr_eFuse_privKey_prod.c cr_eFuse_pubKey_prod.c \
|
KEYS_C = cr_eFuse_privKey_prod.c cr_eFuse_pubKey_prod.c \
|
||||||
@ -87,10 +84,6 @@ KEYS_C = cr_eFuse_privKey_prod.c cr_eFuse_pubKey_prod.c \
|
|||||||
SRCS = main.c cr_generate_id.c cr_hsm_util.c cr_keyPair.c \
|
SRCS = main.c cr_generate_id.c cr_hsm_util.c cr_keyPair.c \
|
||||||
cr_deviceCert.c cr_enc_id.c cr_alloc.c cr_hsm_code.c
|
cr_deviceCert.c cr_enc_id.c cr_alloc.c cr_hsm_code.c
|
||||||
|
|
||||||
ifeq ($(USE_SFMT),TRUE)
|
|
||||||
SRCS += $(SFMT_DIR)/SFMT.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
OBJS = $(notdir $(SRCS:.c=.o))
|
OBJS = $(notdir $(SRCS:.c=.o))
|
||||||
|
|
||||||
CFLAGS = -Wall -DMEXP=216091 -msse2 -DHAVE_SSE2
|
CFLAGS = -Wall -DMEXP=216091 -msse2 -DHAVE_SSE2
|
||||||
@ -114,11 +107,6 @@ ifeq ($(USE_DUMMY_KEY),TRUE)
|
|||||||
CFLAGS += -DUSE_DUMMY_KEY
|
CFLAGS += -DUSE_DUMMY_KEY
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_SFMT),TRUE)
|
|
||||||
CFLAGS += -DUSE_SFMT
|
|
||||||
CPPFLAGS+= -I$(SFMT_DIR)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(USE_HSM),TRUE)
|
ifeq ($(USE_HSM),TRUE)
|
||||||
CFLAGS += -DUSE_HSM
|
CFLAGS += -DUSE_HSM
|
||||||
CPPFLAGS+= $(NFAST_CPPFLAGS)
|
CPPFLAGS+= $(NFAST_CPPFLAGS)
|
||||||
@ -146,9 +134,6 @@ $(TARGET): $(OBJS)
|
|||||||
|
|
||||||
$(OBJS): $(HEADS) Makefile
|
$(OBJS): $(HEADS) Makefile
|
||||||
|
|
||||||
%.o:$(SFMT_DIR)/%.c
|
|
||||||
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
%.o:%.c
|
%.o:%.c
|
||||||
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
|
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
|||||||
@ -274,7 +274,6 @@ int cr_generate_id( u32 serial[CR_NUM_OF_SERIAL], u8 id_buf[CR_ID_BUF_SIZE], u8
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
#endif /* DEBUG_PRINT */
|
#endif /* DEBUG_PRINT */
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
// タイムスタンプセット
|
// タイムスタンプセット
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
@ -301,7 +300,7 @@ int cr_generate_id( u32 serial[CR_NUM_OF_SERIAL], u8 id_buf[CR_ID_BUF_SIZE], u8
|
|||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
// 楕円曲線鍵ペアを生成
|
// 楕円曲線鍵ペアを生成
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
ret_code = GenarateECCKeyPair( my_eckey, cr_id_buf->devicePrivKey );
|
ret_code = GenarateECCKeyPair( &my_eckey, cr_id_buf->devicePrivKey );
|
||||||
if ( ret_code != CR_GENID_SUCCESS ) {
|
if ( ret_code != CR_GENID_SUCCESS ) {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -183,7 +183,7 @@ typedef struct {
|
|||||||
|
|
||||||
extern int GetTimestamp( u8 *pYear, u8 *pMonth, u8 *pMday, u8 *pHour, u8 *pMin, u8 *pSec, time_t *pTime);
|
extern int GetTimestamp( u8 *pYear, u8 *pMonth, u8 *pMday, u8 *pHour, u8 *pMin, u8 *pSec, time_t *pTime);
|
||||||
extern int GenerateRandom( u8 *pDst, int length );
|
extern int GenerateRandom( u8 *pDst, int length );
|
||||||
extern int GenarateECCKeyPair( EC_KEY *pECkey, u8 *pECPrivkey );
|
extern int GenarateECCKeyPair( EC_KEY **ppECkey, u8 *pECPrivkey );
|
||||||
extern int GenerateCTRDeviceCert( EC_POINT *pubKey, u32 deviceId, u8 bondingOption );
|
extern int GenerateCTRDeviceCert( EC_POINT *pubKey, u32 deviceId, u8 bondingOption );
|
||||||
extern int EncryptID( unsigned char *dst_buf, unsigned char *org_buf, u8 bondingOption );
|
extern int EncryptID( unsigned char *dst_buf, unsigned char *org_buf, u8 bondingOption );
|
||||||
extern void DebugPrintArray( char *pStr, const u8 *pData, int length );
|
extern void DebugPrintArray( char *pStr, const u8 *pData, int length );
|
||||||
|
|||||||
12
cr_keyPair.c
12
cr_keyPair.c
@ -126,26 +126,26 @@ static int generate_EC_public_key( EC_KEY *eckey );
|
|||||||
|
|
||||||
|
|
||||||
// ECCキーペアの生成
|
// ECCキーペアの生成
|
||||||
int GenarateECCKeyPair( EC_KEY *pECkey, u8 *pECPrivkey )
|
int GenarateECCKeyPair( EC_KEY **ppECkey, u8 *pECPrivkey )
|
||||||
{
|
{
|
||||||
int ret_code = 0;
|
int ret_code = 0;
|
||||||
|
|
||||||
// 楕円を選択 ( NID_X9_62_prime256v1 -> 32bytesまで、 NID_sect571r1 -> 71bytesまで 署名にデータを含められる )
|
// 楕円を選択 ( NID_X9_62_prime256v1 -> 32bytesまで、 NID_sect571r1 -> 71bytesまで 署名にデータを含められる )
|
||||||
pECkey = EC_KEY_new_by_curve_name( NID_sect233r1 );
|
*ppECkey = EC_KEY_new_by_curve_name( NID_sect233r1 );
|
||||||
if( pECkey == NULL )
|
if( *ppECkey == NULL )
|
||||||
{
|
{
|
||||||
return CR_GENID_ERROR_EC_KEY_NEW_1;
|
return CR_GENID_ERROR_EC_KEY_NEW_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 秘密鍵生成
|
// 秘密鍵生成
|
||||||
ret_code = generate_EC_private_key( pECkey, pECPrivkey );
|
ret_code = generate_EC_private_key( *ppECkey, pECPrivkey );
|
||||||
if( ret_code != 0 )
|
if( ret_code != 0 )
|
||||||
{
|
{
|
||||||
return CR_GENID_ERROR_EC_GENERATE_PRIVATE_KEY;
|
return CR_GENID_ERROR_EC_GENERATE_PRIVATE_KEY;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 公開鍵生成
|
// 公開鍵生成
|
||||||
ret_code = generate_EC_public_key( pECkey );
|
ret_code = generate_EC_public_key( *ppECkey );
|
||||||
if ( ret_code == 0 )
|
if ( ret_code == 0 )
|
||||||
{
|
{
|
||||||
return CR_GENID_ERROR_EC_GENERATE_PUBLIC_KEY;
|
return CR_GENID_ERROR_EC_GENERATE_PUBLIC_KEY;
|
||||||
@ -153,7 +153,7 @@ int GenarateECCKeyPair( EC_KEY *pECkey, u8 *pECPrivkey )
|
|||||||
|
|
||||||
// ASN.1 形式指定フラグをセットする
|
// ASN.1 形式指定フラグをセットする
|
||||||
// (これをセットしないと色々変なフィールドが入ってしまうため)
|
// (これをセットしないと色々変なフィールドが入ってしまうため)
|
||||||
EC_KEY_set_asn1_flag( pECkey, 1 );
|
EC_KEY_set_asn1_flag( *ppECkey, 1 );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
13
main.c
13
main.c
@ -14,10 +14,6 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif // Linux
|
#endif // Linux
|
||||||
|
|
||||||
#ifdef USE_SFMT
|
|
||||||
#include "SFMT.h"
|
|
||||||
#endif /* USE_SFMT */
|
|
||||||
|
|
||||||
#include "cr_generate_id.h"
|
#include "cr_generate_id.h"
|
||||||
|
|
||||||
#define T_BONDING_OPTION 0 // TORIAEZU bondingOption = 0
|
#define T_BONDING_OPTION 0 // TORIAEZU bondingOption = 0
|
||||||
@ -199,11 +195,6 @@ int main(int ac, char *argv[])
|
|||||||
myseed = tloc;
|
myseed = tloc;
|
||||||
srand(myseed);
|
srand(myseed);
|
||||||
|
|
||||||
#ifdef USE_SFMT
|
|
||||||
init_gen_rand((u32)myseed);
|
|
||||||
/* いくらか乱数を読み捨てした方が良い? */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ID生成前にカウンタ加算をするなら、初期値は 0 で OK
|
// ID生成前にカウンタ加算をするなら、初期値は 0 で OK
|
||||||
counter0 = 0x00000000;
|
counter0 = 0x00000000;
|
||||||
counter1 = 0x0000000000000000ll;
|
counter1 = 0x0000000000000000ll;
|
||||||
@ -237,11 +228,7 @@ int main(int ac, char *argv[])
|
|||||||
|
|
||||||
// counter2 は、"0 以外の 32bit 乱数値" を加算
|
// counter2 は、"0 以外の 32bit 乱数値" を加算
|
||||||
do {
|
do {
|
||||||
#ifdef USE_SFMT
|
|
||||||
unit = (u64)gen_rand32();
|
|
||||||
#else
|
|
||||||
unit = (u64)rand() | ( (u64)rand() << 16 );
|
unit = (u64)rand() | ( (u64)rand() << 16 );
|
||||||
#endif
|
|
||||||
}while( unit == 0 );
|
}while( unit == 0 );
|
||||||
counter2 += unit;
|
counter2 += unit;
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,6 @@
|
|||||||
# OPENSSL = openssl-1.0.0-beta2
|
# OPENSSL = openssl-1.0.0-beta2
|
||||||
OPENSSL = openssl-0.9.8k
|
OPENSSL = openssl-0.9.8k
|
||||||
|
|
||||||
SFMT = SFMT-src-1.3.3
|
|
||||||
|
|
||||||
ifeq ($(DEV_CYGWIN),TRUE)
|
ifeq ($(DEV_CYGWIN),TRUE)
|
||||||
OPENSSL_CONFIG_TARGET = mingw
|
OPENSSL_CONFIG_TARGET = mingw
|
||||||
else
|
else
|
||||||
@ -16,17 +14,12 @@ OUT_DIR = ../
|
|||||||
|
|
||||||
.PHONY: all clobber
|
.PHONY: all clobber
|
||||||
|
|
||||||
all: $(OUT_DIR)/$(SFMT) \
|
all: $(OUT_DIR)/$(OPENSSL)/libssl.a
|
||||||
$(OUT_DIR)/$(OPENSSL)/libssl.a
|
|
||||||
|
|
||||||
$(OUT_DIR)/$(OPENSSL)/libssl.a : $(OPENSSL).tar.gz
|
$(OUT_DIR)/$(OPENSSL)/libssl.a : $(OPENSSL).tar.gz
|
||||||
tar xzvf $< -C $(OUT_DIR)
|
tar xzvf $< -C $(OUT_DIR)
|
||||||
cd $(OUT_DIR)/$(OPENSSL);./Configure $(OPENSSL_CONFIG_TARGET);make build_libs;
|
cd $(OUT_DIR)/$(OPENSSL);./Configure $(OPENSSL_CONFIG_TARGET);make build_libs;
|
||||||
|
|
||||||
$(OUT_DIR)/$(SFMT) : $(SFMT).zip
|
|
||||||
unzip -o $< -d $(OUT_DIR)
|
|
||||||
|
|
||||||
clobber:
|
clobber:
|
||||||
$(RM) -r $(OUT_DIR)/$(SFMT)
|
|
||||||
$(RM) -r $(OUT_DIR)/$(OPENSSL)
|
$(RM) -r $(OUT_DIR)/$(OPENSSL)
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user