]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/rand: add and update examples
authorSean Liao <sean@liao.dev>
Sun, 13 Apr 2025 16:48:48 +0000 (17:48 +0100)
committerSean Liao <sean@liao.dev>
Wed, 16 Apr 2025 23:10:00 +0000 (16:10 -0700)
Change-Id: I77406c22b82c9f8bc57323c783f63c4897486e7e
Reviewed-on: https://go-review.googlesource.com/c/go/+/665096
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Roland Shoemaker <roland@golang.org>
src/crypto/rand/example_test.go

index 64e38b11ce5737f57969c5dc9265712c4b339888..cc074cceec518ce3e39f209e484d4f2613f3fde8 100644 (file)
@@ -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)
 }