internal: initialize Ristretto constants

This commit is contained in:
George Tankersley 2019-01-20 16:50:39 -05:00
parent f963b4ec88
commit e93531adad
1 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,36 @@
package edwards25519
import (
"math/big"
"sync"
. "github.com/gtank/ristretto255/internal/edwards25519/internal/edwards25519"
)
var (
CONST_SQRT_M1, _ = new(big.Int).SetString("19681161376707505956807079304988542015446066515923890162744021073123829784752", 10)
CONST_SQRT_AD_MINUS_ONE, _ = new(big.Int).SetString("25063068953384623474111414158702152701244531502492656460079210482610430750235", 10)
CONST_INVSQRT_A_MINUS_D, _ = new(big.Int).SetString("54469307008909316920995813868745141605393597292927456921205312896311721017578", 10)
CONST_ONE_MINUS_D_SQ, _ = new(big.Int).SetString("1159843021668779879193775521855586647937357759715417654439879720876111806838", 10)
CONST_D_MINUS_ONE_SQ, _ = new(big.Int).SetString("40440834346308536858101042469323190826248399146238708352240133220865137265952", 10)
SQRT_M1 FieldElement
SQRT_AD_MINUS_ONE FieldElement
INVSQRT_A_MINUS_D FieldElement
ONE_MINUS_D_SQ FieldElement
D_MINUS_ONE_SQ FieldElement
)
var once sync.Once
func init() {
once.Do(initConstants)
}
func initConstants() {
feFromBig(&SQRT_M1, CONST_SQRT_M1)
feFromBig(&SQRT_AD_MINUS_ONE, CONST_SQRT_AD_MINUS_ONE)
feFromBig(&INVSQRT_A_MINUS_D, CONST_INVSQRT_A_MINUS_D)
feFromBig(&ONE_MINUS_D_SQ, CONST_ONE_MINUS_D_SQ)
feFromBig(&D_MINUS_ONE_SQ, CONST_D_MINUS_ONE_SQ)
}