You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
514 B
17 lines
514 B
3 years ago
|
package crypto
|
||
|
|
||
|
import "math/big"
|
||
|
|
||
|
// Prime checks that given number is prime.
|
||
|
func Prime(p *big.Int) bool {
|
||
|
// TODO(tdakkota): maybe it should be smaller?
|
||
|
// 1 - 1/4^64 is equal to 0.9999999999999999999999999999999999999970612641229442812300781587
|
||
|
//
|
||
|
// TDLib uses nchecks = 64
|
||
|
// See https://github.com/tdlib/td/blob/d161323858a782bc500d188b9ae916982526c262/tdutils/td/utils/BigNum.cpp#L155.
|
||
|
const probabilityN = 64
|
||
|
|
||
|
// ProbablyPrime is mutating, so we need a copy
|
||
|
return p.ProbablyPrime(probabilityN)
|
||
|
}
|