generateEmailCode returns a cryptographically-random 6-digit numeric code.
()
| 1601 | |
| 1602 | // generateEmailCode returns a cryptographically-random 6-digit numeric code. |
| 1603 | func generateEmailCode() (string, error) { |
| 1604 | const digits = "0123456789" |
| 1605 | b := make([]byte, emailCodeLength) |
| 1606 | if _, err := rand.Read(b); err != nil { |
| 1607 | return "", err |
| 1608 | } |
| 1609 | for i := range b { |
| 1610 | b[i] = digits[int(b[i])%len(digits)] |
| 1611 | } |
| 1612 | return string(b), nil |
| 1613 | } |
| 1614 | |
| 1615 | // hashEmailCode returns HMAC-SHA256(code) hex-encoded, keyed with the server's auth secret. |
| 1616 | // HMAC with a server-side secret (vs. bare SHA-256) prevents offline brute force of the |
no outgoing calls
no test coverage detected