UNPKG

snarkyjs-elgamal

Version:

This repository implements Elgmal, a partial homomorphic encryption scheme originally described by [Taher Elgamal in 1985](https://caislab.kaist.ac.kr/lecture/2010/spring/cs548/basic/B02.pdf). This implementation includes the original version of Elgamal,

49 lines 1.8 kB
import { isReady, shutdown, Field } from 'snarkyjs'; import { modExp } from './lib'; describe('lib', () => { beforeAll(async () => { await isReady; }); afterAll(() => { setTimeout(() => shutdown(), 0); }); describe('modExp', () => { // this works fine for small values, but will get tricky for huge ones it('Should calculate g^x', () => { let base = 5; let exponent = 15; modExp(Field(base), Field(exponent)).assertEquals(Field(base ** exponent)); }); it('Should calculate g^x', () => { let base = 85; let exponent = 8; modExp(Field(base), Field(exponent)).assertEquals(Field(base ** exponent)); }); it('Should calculate g^x', () => { let base = 71; let exponent = 3; modExp(Field(base), Field(exponent)).assertEquals(Field(base ** exponent)); }); it('Should calculate g^x', () => { let base = 1; let exponent = 32; modExp(Field(base), Field(exponent)).assertEquals(Field(base ** exponent)); }); it('Should calculate g^x', () => { let base = 2; let exponent = 32; modExp(Field(base), Field(exponent)).assertEquals(Field(base ** exponent)); }); it('Should calculate g^x', () => { let base = 32; let exponent = 2; modExp(Field(base), Field(exponent)).assertEquals(Field(base ** exponent)); }); it('Should calculate g^x', () => { let base = 70; let exponent = 2; modExp(Field(base), Field(exponent)).assertEquals(Field(base ** exponent)); }); }); }); //# sourceMappingURL=lib.test.js.map