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 ../rsa_keysrcgen/rsa1_key.o | grep " [T|B|D] "
|
||||
|
||||
|
||||
# 最終的なビルドスイッチの設定は、以下の通り。
|
||||
# DEV_CYGWIN = FALSE
|
||||
# USE_HSM = TRUE
|
||||
# USE_SFMT = XX
|
||||
|
||||
DEV_CYGWIN = TRUE
|
||||
#USE_HSM = TRUE
|
||||
USE_SFMT = TRUE
|
||||
|
||||
|
||||
ifeq ($(USE_HSM),TRUE)
|
||||
@ -76,8 +75,6 @@ PACKAGE_DIR = ./package
|
||||
# OPENSSL_DIR = ./openssl-1.0.0-beta2
|
||||
OPENSSL_DIR = ./openssl-0.9.8k
|
||||
|
||||
SFMT_DIR = ./SFMT-src-1.3.3
|
||||
|
||||
TARGET = gen_id
|
||||
|
||||
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 \
|
||||
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))
|
||||
|
||||
CFLAGS = -Wall -DMEXP=216091 -msse2 -DHAVE_SSE2
|
||||
@ -114,11 +107,6 @@ ifeq ($(USE_DUMMY_KEY),TRUE)
|
||||
CFLAGS += -DUSE_DUMMY_KEY
|
||||
endif
|
||||
|
||||
ifeq ($(USE_SFMT),TRUE)
|
||||
CFLAGS += -DUSE_SFMT
|
||||
CPPFLAGS+= -I$(SFMT_DIR)
|
||||
endif
|
||||
|
||||
ifeq ($(USE_HSM),TRUE)
|
||||
CFLAGS += -DUSE_HSM
|
||||
CPPFLAGS+= $(NFAST_CPPFLAGS)
|
||||
@ -146,9 +134,6 @@ $(TARGET): $(OBJS)
|
||||
|
||||
$(OBJS): $(HEADS) Makefile
|
||||
|
||||
%.o:$(SFMT_DIR)/%.c
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
|
||||
|
||||
%.o:%.c
|
||||
$(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");
|
||||
}
|
||||
#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 ) {
|
||||
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 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 EncryptID( unsigned char *dst_buf, unsigned char *org_buf, u8 bondingOption );
|
||||
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キーペアの生成
|
||||
int GenarateECCKeyPair( EC_KEY *pECkey, u8 *pECPrivkey )
|
||||
int GenarateECCKeyPair( EC_KEY **ppECkey, u8 *pECPrivkey )
|
||||
{
|
||||
int ret_code = 0;
|
||||
|
||||
// 楕円を選択 ( NID_X9_62_prime256v1 -> 32bytesまで、 NID_sect571r1 -> 71bytesまで 署名にデータを含められる )
|
||||
pECkey = EC_KEY_new_by_curve_name( NID_sect233r1 );
|
||||
if( pECkey == NULL )
|
||||
*ppECkey = EC_KEY_new_by_curve_name( NID_sect233r1 );
|
||||
if( *ppECkey == NULL )
|
||||
{
|
||||
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 )
|
||||
{
|
||||
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 )
|
||||
{
|
||||
return CR_GENID_ERROR_EC_GENERATE_PUBLIC_KEY;
|
||||
@ -153,7 +153,7 @@ int GenarateECCKeyPair( EC_KEY *pECkey, u8 *pECPrivkey )
|
||||
|
||||
// ASN.1 形式指定フラグをセットする
|
||||
// (これをセットしないと色々変なフィールドが入ってしまうため)
|
||||
EC_KEY_set_asn1_flag( pECkey, 1 );
|
||||
EC_KEY_set_asn1_flag( *ppECkey, 1 );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
13
main.c
13
main.c
@ -14,10 +14,6 @@
|
||||
#include <unistd.h>
|
||||
#endif // Linux
|
||||
|
||||
#ifdef USE_SFMT
|
||||
#include "SFMT.h"
|
||||
#endif /* USE_SFMT */
|
||||
|
||||
#include "cr_generate_id.h"
|
||||
|
||||
#define T_BONDING_OPTION 0 // TORIAEZU bondingOption = 0
|
||||
@ -199,11 +195,6 @@ int main(int ac, char *argv[])
|
||||
myseed = tloc;
|
||||
srand(myseed);
|
||||
|
||||
#ifdef USE_SFMT
|
||||
init_gen_rand((u32)myseed);
|
||||
/* いくらか乱数を読み捨てした方が良い? */
|
||||
#endif
|
||||
|
||||
// ID生成前にカウンタ加算をするなら、初期値は 0 で OK
|
||||
counter0 = 0x00000000;
|
||||
counter1 = 0x0000000000000000ll;
|
||||
@ -237,11 +228,7 @@ int main(int ac, char *argv[])
|
||||
|
||||
// counter2 は、"0 以外の 32bit 乱数値" を加算
|
||||
do {
|
||||
#ifdef USE_SFMT
|
||||
unit = (u64)gen_rand32();
|
||||
#else
|
||||
unit = (u64)rand() | ( (u64)rand() << 16 );
|
||||
#endif
|
||||
}while( unit == 0 );
|
||||
counter2 += unit;
|
||||
|
||||
|
||||
@ -2,8 +2,6 @@
|
||||
# OPENSSL = openssl-1.0.0-beta2
|
||||
OPENSSL = openssl-0.9.8k
|
||||
|
||||
SFMT = SFMT-src-1.3.3
|
||||
|
||||
ifeq ($(DEV_CYGWIN),TRUE)
|
||||
OPENSSL_CONFIG_TARGET = mingw
|
||||
else
|
||||
@ -16,17 +14,12 @@ OUT_DIR = ../
|
||||
|
||||
.PHONY: all clobber
|
||||
|
||||
all: $(OUT_DIR)/$(SFMT) \
|
||||
$(OUT_DIR)/$(OPENSSL)/libssl.a
|
||||
all: $(OUT_DIR)/$(OPENSSL)/libssl.a
|
||||
|
||||
$(OUT_DIR)/$(OPENSSL)/libssl.a : $(OPENSSL).tar.gz
|
||||
tar xzvf $< -C $(OUT_DIR)
|
||||
cd $(OUT_DIR)/$(OPENSSL);./Configure $(OPENSSL_CONFIG_TARGET);make build_libs;
|
||||
|
||||
$(OUT_DIR)/$(SFMT) : $(SFMT).zip
|
||||
unzip -o $< -d $(OUT_DIR)
|
||||
|
||||
clobber:
|
||||
$(RM) -r $(OUT_DIR)/$(SFMT)
|
||||
$(RM) -r $(OUT_DIR)/$(OPENSSL)
|
||||
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user