How to use the crypt.GHASH function in crypt

To help you get started, we’ve selected a few crypt examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github Moddable-OpenSource / moddable / modules / crypt / etc / gcm.js View on Github external
init(iv, aad) {
		let h = this.block.encrypt(new ArrayBuffer(this.block.blockSize));
		this.ghash = new GHASH(h, aad);
		if (iv.byteLength == 12) {
			let one = new DataView(new ArrayBuffer(4));
			one.setUint32(0, 1);	// big endian
			iv = iv.concat(one.buffer);
		}
		else {
			let ghash = new GHASH(h);
			iv = ghash.process(iv);
		}
		this.y0 = iv;
		// start with y1
		let y1 = BigInt.fromArrayBuffer(iv);
		y1++;
		this.ctr.setIV(ArrayBuffer.fromBigInt(y1));
	}
	encrypt(data, buf) {
github Moddable-OpenSource / moddable / modules / crypt / etc / gcm.js View on Github external
init(iv, aad) {
		let h = this.block.encrypt(new ArrayBuffer(this.block.blockSize));
		this.ghash = new GHASH(h, aad);
		if (iv.byteLength == 12) {
			let one = new DataView(new ArrayBuffer(4));
			one.setUint32(0, 1);	// big endian
			iv = iv.concat(one.buffer);
		}
		else {
			let ghash = new GHASH(h);
			iv = ghash.process(iv);
		}
		this.y0 = iv;
		// start with y1
		let y1 = BigInt.fromArrayBuffer(iv);
		y1++;
		this.ctr.setIV(ArrayBuffer.fromBigInt(y1));
	}
	encrypt(data, buf) {
github Moddable-OpenSource / moddable / examples / crypt / cryptdigest / main.js View on Github external
let sha1 = new Digest("SHA1");
sha1.write("dGhlIHNhbXBsZSBub25jZQ==");
sha1.write("258EAFA5-E914-47DA-95CA-C5AB0DC85B11");
let result = Base64.encode(sha1.close());

trace(`Calculated hash: ${result}\n`);

let expect = "s3pPLMBiTxaQ9kYGzzhZRbK+xOo=";
trace(`Expected hash: ${expect}\n`);

if (result == expect)
	trace("PASS\n");
else
	trace("FAIL\n");

let ghash = new GHASH(H2B("0x66e94bd4ef8a2c3b884cfa59ca342b2e"));
ghash.write(H2B("0x0388dace60b6a392f328c2b971b2fe78"));
result = ghash.close();
let expected = H2B("0xf38cbb1ad69223dcc3457ae5b6b0f885");
if (Bin.comp(result, expected) == 0)
	trace("PASS\n");
else {
	trace("FAIL\n");
	trace("result: " + B2H(result) + "\n");
	trace("expected: " + B2H(expected) + "\n");
	debugger
}

ghash = new GHASH(H2B("0xb83b533708bf535d0aa6e52980d53b78"),
		  H2B("0xfeedfacedeadbeeffeedfacedeadbeefabaddad2"));
ghash.write(H2B("0x42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091"));
result = ghash.close();
github Moddable-OpenSource / moddable / examples / crypt / cryptdigest / main.js View on Github external
trace("FAIL\n");

let ghash = new GHASH(H2B("0x66e94bd4ef8a2c3b884cfa59ca342b2e"));
ghash.write(H2B("0x0388dace60b6a392f328c2b971b2fe78"));
result = ghash.close();
let expected = H2B("0xf38cbb1ad69223dcc3457ae5b6b0f885");
if (Bin.comp(result, expected) == 0)
	trace("PASS\n");
else {
	trace("FAIL\n");
	trace("result: " + B2H(result) + "\n");
	trace("expected: " + B2H(expected) + "\n");
	debugger
}

ghash = new GHASH(H2B("0xb83b533708bf535d0aa6e52980d53b78"),
		  H2B("0xfeedfacedeadbeeffeedfacedeadbeefabaddad2"));
ghash.write(H2B("0x42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091"));
result = ghash.close();
expected = H2B("0x698e57f70e6ecc7fd9463b7260a9ae5f");
if (Bin.comp(result, expected) == 0)
	trace("PASS\n");
else {
	trace("FAIL\n");
	trace("result: " + B2H(result) + "\n");
	trace("expected: " + B2H(expected) + "\n");
	debugger
}