このため、私はrand_poll()のカスタマイズされた実装を含む.cppファイルを作成しました(名前空間のサポートはCでは存在しないため、cppファイルを追加する必要がありました)。
rand_poll
を完全に避ける必要があります。 OpenSSL wikiのRandom Numbers | Windows Issuesを参照してください。
代わりに、あなたがすべき:
IBuffer buffer = CryptographicBuffer.GenerateRandom(length);
そしては、OpenSSLのRAND_seed
にバッファを渡します。
私のファイルからではなく、rand_win.cからrand_poll機能を使用するようにどのように私は、OpenSSLのビルドシステムにこのファイルを追加するには?
おそらく最も簡単にパッチを修正して置き換えてください。ソースは<openssl dir>/crypto/rand/rand_win.c
にあります。
または、ENGINEを作成し、デフォルトのランダムメソッドをエンジンのメソッドに置き換えます。例を挙げると簡単なのはインテルのRDRANDエンジンです。類似のエンジンを追加するときに興味のあるファイルは次のとおりです。
$ grep -IR _rdrand * | cut -f 1 -d ':' | sort | uniq
crypto/engine/Makefile
crypto/engine/eng_all.c
crypto/engine/eng_rdrand.c
crypto/engine/engine.h
crypto/x86_64cpuid.pl
crypto/x86cpuid.pl
include/openssl/engine.h
...
出典
2016-04-22 06:32:16
jww
お返事ありがとうございました。非常に役に立ちます。私は疑いがあった。ファイルをOpenSSLビルドシステムに追加するにはどうすればよいですか? – SalmanKhan
@ salman1864830: 'rand_win.c'を検索して、.cppファイルを追加する必要がある適切なmakefileやその他の設定ファイルが見つかると思います。 –
もう少し詳しく説明できますか?私はcppファイルをcppファイルに置き換えるだけではうまくいかないと思います(uwpでは、/ zwフラグでcppファイルをコンパイルします。このフラグを指定するとcファイルはコンパイルされません) – SalmanKhan