2016/12/29

[mbedtls]mpiのビット

mbedTLSを使おうとしている。
まずはBash on Windowsで動作確認だ。

サンプルを見ていると、mbedtls_mpiで大きい数字を取り扱うようだ。
元に戻すときはuint8_tなどで取得できるのだが、エンディアンはどうなっているのだろうか?

    mbedtls_mpi m;

    mbedtls_mpi_init(&m);
    mbedtls_mpi_read_string(&m, 10, "4660");        //0x1234
    for (int lp = 0; lp < 16; lp++) {
        if (mbedtls_mpi_get_bit(&m, lp) == 0) {
            printf("0");
        } else {
            printf("1");
        }
    }
    printf("\n");
    uint8_t u16[2];
    mbedtls_mpi_write_binary(&m, u16, 2);
    printf("%02x %02x\n\n", u16[0], u16[1]);

    mbedtls_mpi_free(&m);

結果

0010110001001000
12 34

 

ほう、そう来るか。
ビット0は、一番下のビットになるんだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。