UNPKG

cipher-ethereum

Version:

An Ethereum library used by Cipher Browser, a mobile Ethereum client

35 lines (33 loc) 3.32 kB
'use strict'; var _util = require('./util'); describe('decompressPublicKey', function () { test('does nothing and returns the same key if an already decompressed public key is given', function () { var testCases = ['04bbcf65f8074fe2fba2b5a7ea44fcae88f7c12d0a51aa9c9193336739fee8167f72da911f6377971e1dcd4ff589f3ef84f51d4adde93b68498470b03399a8c451', '0406d900ae61f6f6a5fc73a1d0e7f6f6b0b22fcb31496a575ed5b07932b4cff0ee8479690287883c69f1f9e293b3397c9318ae13ec2144df29c8164d6cf935f5b6', '043ad5f4d0042a54769c390668bd120caa20ff193e54887342b1ccbe6a4df0e448c9e1517ddf27378ef0d75d964b21684d3f6a1d22d6d4c36898978afff9f55593', '04ce4bef9198f26a815f63e74c93b41d98d38c890d3bd19d65a55ede7efc5c8e5461caf6646800d4b44a38e39e81923158f10919d1aa791e151dc1f422a554c67e']; testCases.forEach(function (hex) { var publicKey = Buffer.from(hex, 'hex'); expect((0, _util.decompressPublicKey)(publicKey).toString('hex')).toBe(hex); }); }); test('returns an decompressed representation of a given comprsesed public key', function () { var testCases = { '03bbcf65f8074fe2fba2b5a7ea44fcae88f7c12d0a51aa9c9193336739fee8167f': '04bbcf65f8074fe2fba2b5a7ea44fcae88f7c12d0a51aa9c9193336739fee8167f72da911f6377971e1dcd4ff589f3ef84f51d4adde93b68498470b03399a8c451', '0206d900ae61f6f6a5fc73a1d0e7f6f6b0b22fcb31496a575ed5b07932b4cff0ee': '0406d900ae61f6f6a5fc73a1d0e7f6f6b0b22fcb31496a575ed5b07932b4cff0ee8479690287883c69f1f9e293b3397c9318ae13ec2144df29c8164d6cf935f5b6', '033ad5f4d0042a54769c390668bd120caa20ff193e54887342b1ccbe6a4df0e448': '043ad5f4d0042a54769c390668bd120caa20ff193e54887342b1ccbe6a4df0e448c9e1517ddf27378ef0d75d964b21684d3f6a1d22d6d4c36898978afff9f55593', '02ce4bef9198f26a815f63e74c93b41d98d38c890d3bd19d65a55ede7efc5c8e54': '04ce4bef9198f26a815f63e74c93b41d98d38c890d3bd19d65a55ede7efc5c8e5461caf6646800d4b44a38e39e81923158f10919d1aa791e151dc1f422a554c67e' }; Object.keys(testCases).forEach(function (compressedHex) { var decompressedHex = testCases[compressedHex]; var compressedKey = Buffer.from(compressedHex, 'hex'); expect((0, _util.decompressPublicKey)(compressedKey).toString('hex')).toBe(decompressedHex); }); }); test('throws an error if an invalid public key is given', function () { var testCases = ['03bbcf65f8074fe2fba2b5a7ea44fcae88f7c12d0a51aa9c9193336739fee8167f72da911f6377971e1dcd4ff589f3ef84f51d4adde93b68498470b03399a8c451', '04ce4bef9198f26a815f63e74c93b41d98d38c890d3bd19d65a55ede7efc5c8e5461caf6646800d4b44a38e39e81923158f10919d1aa791e151dc1f422a554c67e00', '04ce4bef9198f26a815f63e74c93b41d98d38c890d3bd19d65a55ede7efc5c8e5461caf6646800d4b44a38e39e81923158f10919d1aa791e151dc1f422a554c6', '03bbcf65f8074fe2fba2b5a7ea44fcae88f7c12d0a51aa9c9193336739fee8167f0a', '01bbcf65f8074fe2fba2b5a7ea44fcae88f7c12d0a51aa9c9193336739fee8167f', '02ffd900ae61f6f6a5fc73a1d0e7f6f6b0b22fcb31496a575ed5b07932b4cff0ee', '0206d900ae61f6f6a5fc73a1d0e7f6f6b0b22fcb31496a575ed5b07932b4cff0']; testCases.forEach(function (hex) { var publicKey = Buffer.from(hex, 'hex'); expect(function () { return (0, _util.decompressPublicKey)(publicKey); }).toThrow(/invalid/); }); }); });