From 3cefe69c5a5ad687f220696d4f8a2fe4d59241dd Mon Sep 17 00:00:00 2001 From: Sean Liao Date: Sun, 13 Apr 2025 17:48:48 +0100 Subject: [PATCH] crypto/rand: add and update examples Change-Id: I77406c22b82c9f8bc57323c783f63c4897486e7e Reviewed-on: https://go-review.googlesource.com/c/go/+/665096 Reviewed-by: Daniel McCarney LUCI-TryBot-Result: Go LUCI Reviewed-by: Dmitri Shuralyov Reviewed-by: Roland Shoemaker --- src/crypto/rand/example_test.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/crypto/rand/example_test.go b/src/crypto/rand/example_test.go index 64e38b11ce..cc074cceec 100644 --- a/src/crypto/rand/example_test.go +++ b/src/crypto/rand/example_test.go @@ -12,16 +12,30 @@ import ( // ExampleInt prints a single cryptographically secure pseudorandom number between 0 and 99 inclusive. func ExampleInt() { - a, err := rand.Int(rand.Reader, big.NewInt(100)) - if err != nil { - fmt.Println("error:", err) - return - } + // Int cannot return an error when using rand.Reader. + a, _ := rand.Int(rand.Reader, big.NewInt(100)) fmt.Println(a.Int64()) } +// ExamplePrime prints a cryptographically secure pseudorandom 64 bit prime number. +func ExamplePrime() { + // Prime cannot return an error when using rand.Reader and bits >= 2. + a, _ := rand.Prime(rand.Reader, 64) + fmt.Println(a.Int64()) +} + +// ExampleRead prints a cryptographically secure pseudorandom 32 byte key. func ExampleRead() { // Note that no error handling is necessary, as Read always succeeds. key := make([]byte, 32) rand.Read(key) + // The key can contain any byte value, print the key in hex. + fmt.Printf("% x\n", key) +} + +// ExampleText prints a random key encoded in base32. +func ExampleText() { + key := rand.Text() + // The key is base32 and safe to display. + fmt.Println(key) } -- 2.51.0