...
Run Format

Source file src/crypto/elliptic/p224_test.go

Documentation: crypto/elliptic

  // Copyright 2012 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package elliptic
  
  import (
  	"math/big"
  	"testing"
  )
  
  var toFromBigTests = []string{
  	"0",
  	"1",
  	"23",
  	"b70e0cb46bb4bf7f321390b94a03c1d356c01122343280d6105c1d21",
  	"706a46d476dcb76798e6046d89474788d164c18032d268fd10704fa6",
  }
  
  func p224AlternativeToBig(in *p224FieldElement) *big.Int {
  	ret := new(big.Int)
  	tmp := new(big.Int)
  
  	for i := uint(0); i < 8; i++ {
  		tmp.SetInt64(int64(in[i]))
  		tmp.Lsh(tmp, 28*i)
  		ret.Add(ret, tmp)
  	}
  	ret.Mod(ret, p224.P)
  	return ret
  }
  
  func TestToFromBig(t *testing.T) {
  	for i, test := range toFromBigTests {
  		n, _ := new(big.Int).SetString(test, 16)
  		var x p224FieldElement
  		p224FromBig(&x, n)
  		m := p224ToBig(&x)
  		if n.Cmp(m) != 0 {
  			t.Errorf("#%d: %x != %x", i, n, m)
  		}
  		q := p224AlternativeToBig(&x)
  		if n.Cmp(q) != 0 {
  			t.Errorf("#%d: %x != %x (alternative)", i, n, m)
  		}
  	}
  }
  

View as plain text