/dev/randomでddの実行がブロックされていることをどのように安全に確認する必要がありますか?

/dev/randomでddの実行がブロックされていることをどのように安全に確認する必要がありますか?

次の方法で/dev/randomのみを使用するシェルスクリプトを開発しています。

dd if=/dev/random of=%{outputFile} count=512 bs=1 2>/dev/null

私は特に/dev/urandomを使用したくありません。しかし、いくつかの理由で/dev/urandomを使用する方が良いでしょう。これは、コンピュータ用に購入した特定のハードウェア乱数ジェネレータをテストしたい/に依存したいからです。開発/ランダムに完全に。

これでentropy_availとpoolsizeを確認できることがわかりますが、dd呼び出しの実行がブロックされないように最善を尽くしてどうすればよいですか?何らかの理由でentropy_availのサイズをチェックするだけでは不十分な場合は、簡単な作業をしたいと思います。なぜなら、 entropy_avail が /dev/random に使用できるビット数を必ずしも知らせるわけではないからです。

/dev/randomでddの実行がブロックされていることをどのように安全に確認する必要がありますか?

ベストアンサー1

GNUを使用している場合は、dd次のものを使用できます。

dd if=/dev/random iflag=nonblock

ブロックせずに最大512バイトを読み取ることができます。したがって、使用可能なバイト数が少ない場合、より少ないバイトが返されます。

おすすめ記事