ctr_eFuse/trunk
n2460 245d933cd7 sample:パッケージに含まれる readme の改訂。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_eFuse@214 ff987cc8-cf2f-4642-8568-d52cce064691
2013-06-06 06:29:26 +00:00
..
document document:吉岡さん謹製の関数仕様文書を追加。 2013-06-05 07:51:25 +00:00
dummyKey ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
hsm_utils ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
package package:Cygwin 1.7 系の gcc(gcc-4) だと openssl-1.0.0-beta5 がビルドできなくなっていたので gcc-3 を使うよう変更。 2013-06-04 05:28:12 +00:00
realKey ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
tools オブジェクトの結合スクリプト修正($openssl_dir の追加) 2011-08-23 06:17:12 +00:00
cr_alloc.c ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_alloc.h ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_device_cert.c genid:HSM から時刻を取得するのは都合が悪いので廃止。 2013-06-04 07:46:44 +00:00
cr_enc_id.c シャープ側で生成されたIDを検証するためのツール、testSharpID.exe をビルドできるよう変更。 2010-03-04 06:16:15 +00:00
cr_generate_id_private.h genid:フォーマットは変更されないためバージョンを上げるのを中止。 2013-06-05 06:21:51 +00:00
cr_generate_id.c ビルドスイッチにファイル出力オプション追加(DEBUG_OUTPUT) 2010-01-28 05:02:52 +00:00
cr_generate_id.h ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_hsm_alloc.c ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_hsm_alloc.h ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_hsm_bignum.c ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_hsm_bignum.h ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_hsm_code.c ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_hsm_code.h ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
cr_id_util.c genid:HSM から時刻を取得するのは都合が悪いので廃止。 2013-06-04 07:46:44 +00:00
cr_keyPair.c シャープ側で生成されたIDを検証するためのツール、testSharpID.exe をビルドできるよう変更。 2010-03-04 06:16:15 +00:00
LICENSE_en.txt ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
LICENSE_jp.txt ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
main2.c デバイス証明書にセットする expiryDate を bigEndian に修正。(eFuseID側は、littleEndian のまま。) 2010-03-15 11:38:46 +00:00
main3.c genid:フォーマットは変更されないためバージョンを上げるのを中止。 2013-06-05 06:21:51 +00:00
main.c main.c:small fix 2010-01-19 13:24:23 +00:00
Makefile genid:Cygwin 1.7 系の gcc(gcc-4) だとビルドできないので gcc-3 を指定。 2013-06-04 05:58:41 +00:00
Makefile.outputSharpID outputSharpID:ファイルポインタの二重解放していたところを修正。 2013-06-05 05:23:27 +00:00
Makefile.sharp sample:シャープ提供のサンプルを改めて作成。 2013-06-06 06:28:41 +00:00
Makefile.testSharpID genid:フォーマットは変更されないためバージョンを上げるのを中止。 2013-06-05 06:21:51 +00:00
readme_openssl.txt ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
readme.txt sample:パッケージに含まれる readme の改訂。 2013-06-06 06:29:26 +00:00
ReleasePackage.sh ツリー全体をtrunkフォルダに移動。 2010-01-12 08:55:42 +00:00
sample.c sample:シャープ提供のサンプルを改めて作成。 2013-06-06 06:28:41 +00:00
util.c sample:シャープ提供のサンプルを改めて作成。 2013-06-06 06:28:41 +00:00
util.h sample:シャープ提供のサンプルを改めて作成。 2013-06-06 06:28:41 +00:00

CTR - ID生成関数について : 2013/06/05

-----------------------------
ファイル構成
    readme.txt
        このファイルです。

    readme_openssl.txt
    LICENSE_en.txt
    LICENSE_jp.txt
        ID 生成関数ライブラリは OpenSSL の機能を一部利用しているため、これらのライセンスファイルを含んでいます。

    libgenid.a
        ID 生成関数のライブラリファイルです。

    cr_generate_id.h
        上記ライブラリのヘッダファイルです。

    function_spec.pdf
        ID 生成関数の仕様について記述しています。

    sample.c
    util.c
    util.h
    Makefile
        ID 生成関数を使った動作サンプルです。

----------------------------
関数仕様

function_spec.pdf をご参照下さい。

cr_generate_id 関数の実行速度は
Intel Pentium4 3.2GHz CPU にて 約 85 msec です。

----------------------------
サンプル

展開したディレクトリの中で make を実行すると gen_id プログラムが作成されます。
このプログラムは eFuseID を生成するサンプルプログラムです。

起動時にはボンディングオプションの指定が必要です。

例
$ ./gen_id 00

プログラム中でキーボードからの入力受付を行います。
以下のキーに対応しています。

p : デバイス ID とそれから生成される eFuseID データ、そして生成に掛かった平均時間を表示します。
s : デバイス ID[0] をファイル名として実行ディレクトリにバイナリとして保存します。
q : プログラムを終了します。

以下、sample.c の一部を抜粋します。
util.c はユーティリティ関数を集めたもので ID 生成関数ライブラリで必要なものではありません。

int main(int argc, char* argv[])
{
    --- 省略 ---

    // cr_generate_id を使用する前に呼び出す
    ret_code = cr_generate_id_initialize( id_buf );
    if ( ret_code != CR_GENID_SUCCESS )
    {
        printf( "error : cr_generate_id_initialize\n" );
        return -1;
    }
    printf("done.\n");

    --- 省略 ---

    for ( i = 1; i < 0xffffffff; i++ )
    {

        --- 省略 ---

        // ID 生成
        time_start = gettimeofday_sec();
        ret_code = cr_generate_id( device_id, id_buf, bonding_option );
        if( ret_code != CR_GENID_SUCCESS )
        {
            fprintf(stderr, "cr_generate_id failed c=0x%08x\n", counter0);
        }
        else
        {
            time_end = gettimeofday_sec();
            time_total += (long double)(time_end - time_start);
            time_count++;
        }

        --- 省略 ---
    }

end:
    --- 省略 ---

    // cr_generate_id を使用した後に呼び出す
	if ( cr_generate_id_finalize( id_buf ) != CR_GENID_SUCCESS )
	{
		printf( "error : cr_generate_id_finalize\n" );
		return 0; // error
	}

    printf( "end of main.\n" );

    return 0;
}