私はそれが実際に実装されていない時に暗号化/ rand.Readerはすなわち、唯一以下に記載されていないプラットフォーム上の読み取りエラーを返すことができるということ?正しく理解していますかrand.Readerを読むとエラーが発生する可能性がありますか?
// Reader is a global, shared instance of a cryptographically
// strong pseudo-random generator.
//
// On Linux, Reader uses getrandom(2) if available, /dev/urandom otherwise.
// On OpenBSD, Reader uses getentropy(2).
// On other Unix-like systems, Reader reads from /dev/urandom.
// On Windows systems, Reader uses the CryptGenRandom API.
var Reader io.Reader
ありがとう@helmbert。 'rand.Reader.Read'が失敗し、ランダムに生成された番号が進まなければならないときに、プログラムが何をすべきか知っていますか?別の実装を使用するか、再試行するか(?)など何かを実行する必要がありますか? – kopiczko
'EAGAIN'エラーは文字通り"後でやり直してください "と言っています。 ['man 3 errno'](http://man7.org/linux/man-pages/man3/errno.3.html)による正式な意味は、*リソースは一時的に利用できません。だから、 'EAGAIN'エラーを受け取ったら、単に一定の時間だけ試してみることができます。一方、 '/ dev/urandom'からのエントロピーの読み込みは、一時的ではないかもしれないいくつかの理由(ファイルシステムのパーミッションなど)で失敗する可能性があります。これは、他の種類の回復不可能なエラー例えば、妥当なエラーメッセージを出力してプログラムを終了させるなど)。 – helmbert