File: install.gp

package info (click to toggle)
gp2c 0.0.11pl1-1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 2,792 kB
  • sloc: ansic: 8,398; sh: 1,687; lex: 340; yacc: 215; makefile: 140
file content (25 lines) | stat: -rw-r--r-- 490 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
install("gpow","GGp");
install("gp2c_gp2crand","G","gp2crand","./affect.gp.so");
install("gp2c_randprime","G","randprime","./affect.gp.so");

powmod(a,b,c)=lift(gpow(Mod(a,c),b))

buildkey(N)=
{
  local(p,q,e,phi);
  p=randprime(N);
  q=randprime(N);
  phi=(p-1)*(q-1);
  until(gcd(e,phi)==1,e=gp2crand(p*q));
  [[e,p*q],[powmod(e,-1,phi),p*q]]
}

crypt(data,publickey)=
{
  powmod(data,publickey[1],publickey[2])
}

decrypt(data,privatekey)=
{
  powmod(data,privatekey[1],privatekey[2])
}