・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:
(no author) 2009-12-22 08:52:51 +00:00
parent 1685d4ae68
commit 6c97e11eea
7 changed files with 10 additions and 46 deletions

View File

@ -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 $@

View File

@ -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;
}

View File

@ -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 );

View File

@ -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
View File

@ -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;

View File

@ -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.