github.com/icodeface/tls@v0.0.0-20230910023335-34df9250cd12/internal/x/crypto/curve25519/curve25519_test.go (about) 1 // Copyright 2012 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package curve25519 6 7 import ( 8 "fmt" 9 "testing" 10 ) 11 12 const expectedHex = "89161fde887b2b53de549af483940106ecc114d6982daa98256de23bdf77661a" 13 14 func TestBaseScalarMult(t *testing.T) { 15 var a, b [32]byte 16 in := &a 17 out := &b 18 a[0] = 1 19 20 for i := 0; i < 200; i++ { 21 ScalarBaseMult(out, in) 22 in, out = out, in 23 } 24 25 result := fmt.Sprintf("%x", in[:]) 26 if result != expectedHex { 27 t.Errorf("incorrect result: got %s, want %s", result, expectedHex) 28 } 29 } 30 31 func BenchmarkScalarBaseMult(b *testing.B) { 32 var in, out [32]byte 33 in[0] = 1 34 35 b.SetBytes(32) 36 for i := 0; i < b.N; i++ { 37 ScalarBaseMult(&out, &in) 38 } 39 }