)
// GenerateKey generates a new RSA key pair of the given bit size.
-// bits must be at least 128.
+// bits must be at least 32.
func GenerateKey(rand io.Reader, bits int) (*PrivateKey, error) {
- if bits < 128 {
+ if bits < 32 {
return nil, errors.New("rsa: key too small")
}
fips140.RecordApproved()
// randomPrime returns a random prime number of the given bit size following
// the process in FIPS 186-5, Appendix A.1.3.
func randomPrime(rand io.Reader, bits int) ([]byte, error) {
- if bits < 64 {
- return nil, errors.New("rsa: prime size must be at least 32-bit")
+ if bits < 16 {
+ return nil, errors.New("rsa: prime size must be at least 16 bits")
}
b := make([]byte, (bits+7)/8)
// This test ensures that trying to generate or validate toy RSA keys
// doesn't enter an infinite loop or panic.
t.Setenv("GODEBUG", "rsa1024min=0")
- for i := 0; i < 128; i++ {
+ for i := 0; i < 32; i++ {
GenerateKey(rand.Reader, i)
GenerateMultiPrimeKey(rand.Reader, 3, i)
GenerateMultiPrimeKey(rand.Reader, 4, i)
}
t.Setenv("GODEBUG", "rsa1024min=0")
- min := 128
+ min := 32
max := 560 // any smaller than this and not all tests will run
if *allFlag {
max = 2048