作者:aubonbeurr
项目:gc
func TestCRLCreation(t *testing.T) {
block, _ := pem.Decode([]byte(pemPrivateKey))
priv, _ := ParsePKCS1PrivateKey(block.Bytes)
block, _ = pem.Decode([]byte(pemCertificate))
cert, _ := ParseCertificate(block.Bytes)
now := time.SecondsToUTC(1000)
expiry := time.SecondsToUTC(10000)
revokedCerts := []pkix.RevokedCertificate{
{
SerialNumber: big.NewInt(1),
RevocationTime: now,
},
{
SerialNumber: big.NewInt(42),
RevocationTime: now,
},
}
crlBytes, err := cert.CreateCRL(rand.Reader, priv, revokedCerts, now, expiry)
if err != nil {
t.Errorf("error creating CRL: %s", err)
}
_, err = ParseDERCRL(crlBytes)
if err != nil {
t.Errorf("error reparsing CRL: %s", err)
}
}
作者:bam36
项目:projeule
func spiral_side_len(iter int64) *big.Int {
//The big package is incredibly awkward, so in case you can't tell,
// side_len = iter*2 - 1
n := big.NewInt(0)
n = n.Add(n.Mul(big.NewInt(iter), big.NewInt(2)), big.NewInt(-1))
return n
}
作者:drago
项目:dragonhome_test
func main() {
ss := new(s_a)
ss.a = 24
ss.b = "45"
ss.b = ss.b + fmt.Sprint(ss.a)
ss.test()
n, err := fmt.Print("hello")
n = n + 1
fmt.Print(err)
ss.a, err = strconv.Atoi(ss.b)
fmt.Print(ss)
iTest(ss)
f, err := os.Open("c:\\my.txt", os.O_RDONLY, 0)
if err != nil {
return
}
defer f.Close()
var s string
// n1, err := fmt.Fscanln(f,"%s",s)
fr := bufio.NewReader(f)
s, err = fr.ReadString('\n')
fmt.Println(s)
log.Println("log message")
summa := big.NewInt(0)
summa.SetString("123454567891234545678912345456789", 0)
summa2 := big.NewInt(0)
summa2.SetString("7", 0)
summa3 := big.NewInt(0)
summa3.Exp(summa, summa2, nil)
fmt.Println(summa3)
_, _ = 4*5, "test"
_ = "Test"
}
作者:jdtob
项目:ProjectEule
func fibo(n *big.Int) *big.Int {
s := n.String()
if r, ok := fiboCache[s]; ok {
return r
}
i0 := big.NewInt(0)
if n.Cmp(i0) <= 0 {
return i0
}
if n.Cmp(big.NewInt(2)) <= 0 {
return big.NewInt(1)
}
n1 := big.NewInt(-1)
n1.Add(n1, n)
n1 = fibo(n1)
n2 := big.NewInt(-2)
n2.Add(n2, n)
n2 = fibo(n2)
i0.Add(n1, n2)
fiboCache[s] = i0
return i0
}
作者:andradeandre
项目:goadmi
func readRSAKey(x PrivateKey) (*rsa.PrivateKey, os.Error) {
var k rsa.PrivateKey
var Ns, Ds, Ps, Qs string
_, e := fmt.Sscanf(string(x), "N = %s\nE = %d\nD = %s\nP = %s\nQ = %s\n", &Ns, &k.E, &Ds, &Ps, &Qs)
if e != nil {
return nil, os.NewError("Couldn't read file: " + e.String())
}
var ok = true
k.N, ok = big.NewInt(0).SetString(Ns, 0)
if !ok {
return nil, os.NewError("Unable to read k.N: " + Ns)
}
k.D, ok = big.NewInt(0).SetString(Ds, 0)
if !ok {
return nil, os.NewError("Unable to read k.D: " + Ds)
}
k.P, ok = big.NewInt(0).SetString(Ps, 0)
if !ok {
return nil, os.NewError("Unable to read k.P: " + Ps)
}
k.Q, ok = big.NewInt(0).SetString(Qs, 0)
if !ok {
return nil, os.NewError("Unable to read k.Q: " + Qs)
}
return &k, nil
}
作者:nicksnyde
项目:vmac.g
func (h *Hash) l2(m []byte, length, iter int) []byte {
tmpt := h.kdf(192, 128*(iter+1))
t := tmpt[16*iter : 16*(iter+1)]
for i := 0; i < 16; i += 4 {
t[i] &= 31
}
k := newInt(t)
y := big.NewInt(1)
n := len(m) / 16
if n != 0 {
for i := 0; i < n; i++ {
mi := newInt(m[16*i : 16*(i+1)])
y.Mod(y.Add(y.Mul(y, k), mi), p127)
}
} else {
y = k
}
y.Add(y, new(big.Int).Lsh(big.NewInt(int64(length%l1keylen)), 64))
y.Mod(y, p127)
Y := make([]byte, 16)
copy(Y[16-len(y.Bytes()):], y.Bytes())
return Y
}
作者:weinhol
项目:conschem
func bitwise_arithmetic_shift_left(x, y Obj) Obj {
xfx := (uintptr(unsafe.Pointer(x)) & fixnum_mask) == fixnum_tag
yfx := (uintptr(unsafe.Pointer(y)) & fixnum_mask) == fixnum_tag
if !yfx {
panic("bad shift amount")
}
amount := uint(uintptr(unsafe.Pointer(y)) >> fixnum_shift)
if xfx && amount < 32-fixnum_shift {
i := int64(int(uintptr(unsafe.Pointer(x)) >> fixnum_shift))
r := i << amount
if r >= int64(fixnum_min) && r <= int64(fixnum_max) {
return Obj(unsafe.Pointer(uintptr((r << fixnum_shift) | fixnum_tag)))
} else {
return wrap(big.NewInt(r))
}
} else if xfx {
x = wrap(big.NewInt(int64(fixnum_to_int(x))))
} else if (uintptr(unsafe.Pointer(x)) & heap_mask) != heap_tag {
panic("bad type")
}
switch vx := (*x).(type) {
case *big.Int:
var z *big.Int = big.NewInt(0)
return wrap(z.Lsh(vx, amount))
}
panic("bad type")
}
作者:weinhol
项目:conschem
func bitwise_and(x, y Obj) Obj {
xfx := (uintptr(unsafe.Pointer(x)) & fixnum_mask) == fixnum_tag
yfx := (uintptr(unsafe.Pointer(y)) & fixnum_mask) == fixnum_tag
if xfx && yfx {
i1 := uintptr(unsafe.Pointer(x))
i2 := uintptr(unsafe.Pointer(y))
return Obj(unsafe.Pointer(uintptr(i1 & i2)))
}
if (!xfx && (uintptr(unsafe.Pointer(x))&heap_mask) != heap_tag) ||
(!yfx && (uintptr(unsafe.Pointer(y))&heap_mask) != heap_tag) {
panic("bad type")
}
if xfx {
return bitwise_and(y, x)
}
switch vx := (*x).(type) {
case *big.Int:
var z *big.Int = big.NewInt(0)
if yfx {
vy := big.NewInt(int64(fixnum_to_int(y)))
return wrap(z.And(vx, vy))
}
switch vy := (*y).(type) {
case *big.Int:
return wrap(z.And(vx, vy))
default:
panic("bad type")
}
}
panic("bad type")
}
作者:ochapma
项目:Golang-Koblitz-elliptic-curve-DSA-librar
// doubleJacobian takes a point in Jacobian coordinates, (x, y, z), and
// returns its double, also in Jacobian form.
func (BitCurve *BitCurve) doubleJacobian(x, y, z *big.Int) (*big.Int, *big.Int, *big.Int) {
// See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#doubling-dbl-2009-l
a := new(big.Int).Mul(x, x) //X1²
b := new(big.Int).Mul(y, y) //Y1²
c := new(big.Int).Mul(b, b) //B²
d := new(big.Int).Add(x, b) //X1+B
d.Mul(d, d) //(X1+B)²
d.Sub(d, a) //(X1+B)²-A
d.Sub(d, c) //(X1+B)²-A-C
d.Mul(d, big.NewInt(2)) //2*((X1+B)²-A-C)
e := new(big.Int).Mul(big.NewInt(3), a) //3*A
f := new(big.Int).Mul(e, e) //E²
x3 := new(big.Int).Mul(big.NewInt(2), d) //2*D
x3.Sub(f, x3) //F-2*D
x3.Mod(x3, BitCurve.P)
y3 := new(big.Int).Sub(d, x3) //D-X3
y3.Mul(e, y3) //E*(D-X3)
y3.Sub(y3, new(big.Int).Mul(big.NewInt(8), c)) //E*(D-X3)-8*C
y3.Mod(y3, BitCurve.P)
z3 := new(big.Int).Mul(y, z) //Y1*Z1
z3.Mul(big.NewInt(2), z3) //3*Y1*Z1
z3.Mod(z3, BitCurve.P)
return x3, y3, z3
}
作者:JackeLe
项目:drobnost
func RabinMiller(p *big.Int) bool {
pdec := new(big.Int).Sub(p, big.NewInt(1)) // = p - 1
big2 := big.NewInt(2)
for i := 0; i < 20; i++ {
x := RandNumSmaller(p)
stg := new(big.Int).Exp(x, pdec, p) // = x^(p-1) mod p
if stg.Cmp(big1) != 0 {
return false
}
// test na Carmichaelova cisla (kontrola zda x^[(p-1)/2] je +1 nebo -1)
p2 := new(big.Int).Rsh(p, 1) // = (p - 1)/2
for {
stg.Exp(x, p2, p)
if stg.Cmp(pdec) == 0 {
break
}
if stg.Cmp(big1) != 0 {
return false
}
_, res := p2.Div(p2, big2)
if res.Cmp(big1) == 0 {
break
}
}
}
return true
}
作者:frewsxc
项目:project-eule
func factorial(num int) (ret *big.Int) {
ret = big.NewInt(1)
for i := num; i > 0; i-- {
ret = ret.Mul(ret, big.NewInt(int64(i)))
}
return
}
作者:bobhancoc
项目:Pycon-2012-Parallelism-and-Concurrenc
func main() {
flag.Parse()
m := int64(*nrows)
//Setup profiling
if *cpuprofile != "" {
f, err := os.Create(*cpuprofile)
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
if *memprofile != "" {
f, err := os.Create(*memprofile)
if err != nil {
log.Fatal(err)
}
pprof.WriteHeapProfile(f)
f.Close()
return
}
prev := make([]*big.Int, 1)
one := big.NewInt(int64(1))
prev[0] = one
x := big.NewInt(int64(0))
for row := int64(1); row < m; row++ {
curr := make([]*big.Int, 1, row+1)
curr[0] = one
mid := int64(row/2) + 1
var right int64
if math.Fmod(float64(row), 2.0) == 0 {
right = mid - 1
} else {
right = mid
}
for j := int64(1); j < mid; j++ {
x = x.Add(prev[j-1], prev[j])
curr = append(curr, x)
x = big.NewInt(int64(0))
}
// Take a slice of the first half of the row, reverse it, and
// append to the current row.
s := make([]*big.Int, right)
r := curr[0:right]
copy(s, r)
rev := reverse(s)
curr = append(curr, rev...)
//fmt.Println(curr)
prev = curr[:]
}
}
作者:ThePiach
项目:GoBi
func (b Base58) Base582Big() *big.Int {
answer := new(big.Int)
for i := 0; i < len(b); i++ {
answer.Mul(answer, big.NewInt(58)) //multiply current value by 58
answer.Add(answer, big.NewInt(int64(revalp[string(b[i:i+1])]))) //add value of the current letter
}
return answer
}
作者:in
项目:go-nut
func main() {
for x := 0; x < 100000; x++ {
a := big.NewInt(1)
for i := 200; i < 221; i++ {
a.Mul(big.NewInt(int64(i+x)), a)
}
}
}
作者:jencarlil
项目:ProjectEule
func Factorial(val *big.Int) *big.Int {
result := big.NewInt(int64(1))
for mult := big.NewInt(int64(1)); mult.Cmp(val) != 1; mult = mult.Add(mult, big.NewInt(int64(1))) {
result = result.Mul(result, mult)
}
return result
}
作者:Abhi072
项目:Codin
func prod(n int) *big.Int {
prod := big.NewInt(1)
i, inc := big.NewInt(1), big.NewInt(1)
for ; n > 0; n-- {
prod.Mul(prod, i)
i.Add(i, inc)
}
return prod
}
作者:miv
项目:sb-g
func TestRatSub(t *testing.T) {
fmt.Println("Testing RatSub")
x := big.NewRat(0, 1).Sub(big.NewRat(1, 3), big.NewRat(1, 2))
fmt.Print("x ")
fmt.Println(x)
if (x.Num().Cmp(big.NewInt(-1)) != 0) || (x.Denom().Cmp(big.NewInt(6)) != 0) {
t.Error("Num and Denom don't match")
}
}
作者:Abhi072
项目:Codin
func make_fibonacci() func() *big.Int {
last, next := big.NewInt(1), big.NewInt(1)
return func() *big.Int {
tmp := new(big.Int).Set(last)
last.Set(next)
next.Add(tmp, next)
return tmp
}
}
作者:gabrielrussel
项目:euler-g
func bigfact(n *big.Int) *big.Int {
one := big.NewInt(1)
if one.Cmp(n) == 0 {
return n
}
o := big.NewInt(0).Set(n)
p := big.NewInt(0).Set(n)
return o.Mul(o, bigfact(p.Sub(p, one)))
}
作者:jdtob
项目:ProjectEule
func fact(n int) *big.Int {
if n <= 1 {
return big.NewInt(1)
}
r := big.NewInt(int64(n))
return r.Mul(r, fact(n-1))
}