mirror of
https://github.com/tlsnotary/tlsn-js.git
synced 2026-01-08 20:18:01 -05:00
41 lines
15 KiB
TypeScript
41 lines
15 KiB
TypeScript
import { Presentation as _Presentation } from '../../src/lib';
|
|
// import { assert } from '../utils';
|
|
import * as Comlink from 'comlink';
|
|
import { Transcript } from '../../src/lib';
|
|
|
|
const { init, Presentation }: any = Comlink.wrap(
|
|
// @ts-ignore
|
|
new Worker(new URL('../worker.ts', import.meta.url)),
|
|
);
|
|
|
|
(async function verify_simple() {
|
|
try {
|
|
await init({ loggingLevel: 'Debug' });
|
|
|
|
console.time('verify');
|
|
const proofHex = `014000000000000000b0098ca39b2c80085ef677b67b38fdacf6e1572d83d360d5cfd3fd46d16a89ab479b6a52346ea530cd763f51e6320a8efeedf6af9a91cac94755a6eb96287adae4d60fcf1cadd5fd17bf8b5dcbb10fde00000000022000000000000000199653c5bbc0519d06dada67718d1a0514e0cf23a0dcf286523ab11b826e4d3800000000012100000000000000030da85d8da9b3436500e52d60f2c15c7605ed9f05953d02294a5ba0b5b9281a9a0100000096b536680000000000000000f4000000130600000200000000000000410000000000000004f885ed8a8d7fd6fd3a18176f8bcaa3831ab2b4c6d5373ce0023aac7bf41d4dc4b0e62f6eb925fd14567cf2e8a3615015e7ea63e8ed24db2bd350a3b45cafa6ea03000000022000000000000000d755aeded66861fc534828213198e2483ef90e09166f71c318d38a02a9a9cda500000000000000000100000000000000040000000000000002200000000000000092687333a61907987e3458bc6c67aabba4abbe3cf0d105e9d943830758e5f61121ba07327eccfc647e610d08926b7781b58c54d336cd820460b622915df2f3d7bd51bf6e25c5a19f68de0536337714ca02050000000000000000000000000000000119000000000000007261772e67697468756275736572636f6e74656e742e636f6d03000000000000008906000000000000308206853082056da0030201020211009077344147316ef99599767aeafdf1b9300d06092a864886f70d01010b050030818f310b3009060355040613024742311b30190603550408131247726561746572204d616e636865737465723110300e0603550407130753616c666f726431183016060355040a130f5365637469676f204c696d69746564313730350603550403132e5365637469676f2052534120446f6d61696e2056616c69646174696f6e2053656375726520536572766572204341301e170d3235303330373030303030305a170d3236303330373233353935395a30163114301206035504030c0b2a2e6769746875622e696f30820122300d06092a864886f70d01010105000382010f003082010a0282010100c4a40b1255662582a767d76628c5ab6f87f2e015859bae7c1107a64b884982bb7ed4d1692f6b4655a16ea55c95def98aa2b097df37a373bfa01fc520a5e9a68fdaf9b64d4d6744975c02d38ef4f68b4de84aa8f00b3927f91d68d13620f86ecfc90e69135f0013e2b7554729721d5fe51c814c4bc4e3e1d4838ffa3a90086055739c9df293c6be6e8d62fc7069d8c6ed3f3b2c4a54fc98f2d8efa4844ed29dc2021d63dd4c913889775c742890ccd863ca33ba4d4dcf3534c4b0e96073b318383c56d1f81098f36fec62ef22332fc0758714cfbda18760c65e7572a73cd5fcb2e027f5403f99be99dd25547e4a206fdc76e0eb6a39682d0e0b28992d3b8566c10203010001a38203523082034e301f0603551d230418301680148d8c5ec454ad8ae177e99bf99b05e1b8018d61e1301d0603551d0e0416041412f07ed0316fe4af35b589fb42d9edb70b93cd04300e0603551d0f0101ff0404030205a0300c0603551d130101ff04023000301d0603551d250416301406082b0601050507030106082b0601050507030230490603551d20044230403034060b2b06010401b231010202073025302306082b06010505070201161768747470733a2f2f7365637469676f2e636f6d2f4350533008060667810c01020130818406082b0601050507010104783076304f06082b060105050730028643687474703a2f2f6372742e7365637469676f2e636f6d2f5365637469676f525341446f6d61696e56616c69646174696f6e53656375726553657276657243412e637274302306082b060105050730018617687474703a2f2f6f6373702e7365637469676f2e636f6d3082017e060a2b06010401d6790204020482016e0482016a0168007600969764bf555897adf743876837084277e9f03ad5f6a4f3366e46a43f0fcaa9c6000001956decac750000040300473045022100f98220b00a9bd9ca9056517824fd844485421f7457741ec38c83dce8287968ae022078ea52857b1793247dc210726767ed9e5447c9d8b4f03638bbd873798215c2ee0077001986d4c728aa6ffeba036f782a4d0191aace2d72310faece5d70412d254cc7d4000001956decac0e00000403004830460221008ebc806d7947b178ffbf87fb0965c9cc3517494baf0399111f776887858f5107022100be9e88c2aa10a7fd9ba96e7239d0ed53dc548a050bbf2ce677ddf029ccb25685007500cb38f715897c84a1445f5bc1ddfbc96ef29a59cd470a690585b0cb14c31458e7000001956decac37000004030046304402204bdf0bd43d96f27cd5ded210d11e14256c70c5bec8fd34fa7bd972d2703442c002205a65eecfd6035426cf5566f19b62868345b9b3bf02289a54669e0d08b39c7142307b0603551d1104743072820b2a2e6769746875622e696f820c2a2e6769746875622e636f6d82172a2e67697468756275736572636f6e74656e742e636f6d820a6769746875622e636f6d82096769746875622e696f821567697468756275736572636f6e74656e742e636f6d820e7777772e6769746875622e636f6d300d06092a864886f70d01010b05000382010100792c8d3542a6d5bd0ad6c15eefbb2767030e6291cff100914c8e36ea233a72a82377767f90d00e4ab3bbf8128fa076f183b76b8118164b6fc2adca9d702ef4acd23357a1961b4097196f8e3194817beec7b0e39c11f8d08b4a884ef6de8a5e5956e6d961317513d27249bf083c2c873d94dd29773375adbf4c4fb9926b835b4c20be7c46aad2e4fa45940208944502e9dafec5542bc0b35c61755582f66c4525ff61baf36e82cc81686e0d240f71a783187732ecdc516479a5a47cfefceb74ebb56ec631aa9bdbde28d19931476ba12fa8731009057bf76753420a8c2fa596b337129c71083b8b363077a1cbef458cc425855347bbd2ec3d299aad786ed255c4170600000000000030820613308203fba00302010202107d5b5126b476ba11db74160bbc530da7300d06092a864886f70d01010c0500308188310b3009060355040613025553311330110603550408130a4e6577204a6572736579311430120603550407130b4a65727365792043697479311e301c060355040a131554686520555345525452555354204e6574776f726b312e302c06035504031325555345525472757374205253412043657274696669636174696f6e20417574686f72697479301e170d3138313130323030303030305a170d3330313233313233353935395a30818f310b3009060355040613024742311b30190603550408131247726561746572204d616e636865737465723110300e0603550407130753616c666f726431183016060355040a130f5365637469676f204c696d69746564313730350603550403132e5365637469676f2052534120446f6d61696e2056616c69646174696f6e205365637572652053657276657220434130820122300d06092a864886f70d01010105000382010f003082010a0282010100d67333d6d73c20d000d21745b8d63e07a23fc741ee3230c9b06cfdf49fcb12980f2d3f8d4d010c820f177f622ee9b84879fb16834eadd7322593b707bfb9503fa94cc3402ae939ffd981ca1f163241da8026b9237a87201ee3ff209a3c95446f8775069040b4329316091008233ed2dd870f6f5d51146a0a69c54f017269cfd3934c6d04a0a31b827eb19ab9edc59ec537789f9a0834fb562e58c4090e06645bbc37dcf19f2868a856b092a35c9fbb8898081b241dab3085aeafb02e9e7a9dc1c0421ce202f0eae04ad2ef900eb4c14016f06f85424a64f7a430a0febf2ea3275a8e8b58b8adc319178463ed6f56fd83cb6034c474bee69ddbe1e4e5ca0c5f150203010001a382016e3082016a301f0603551d230418301680145379bf5aaa2b4acf5480e1d89bc09df2b20366cb301d0603551d0e041604148d8c5ec454ad8ae177e99bf99b05e1b8018d61e1300e0603551d0f0101ff04040302018630120603551d130101ff040830060101ff020100301d0603551d250416301406082b0601050507030106082b06010505070302301b0603551d200414301230060604551d20003008060667810c01020130500603551d1f044930473045a043a041863f687474703a2f2f63726c2e7573657274727573742e636f6d2f55534552547275737452534143657274696669636174696f6e417574686f726974792e63726c307606082b06010505070101046a3068303f06082b060105050730028633687474703a2f2f6372742e7573657274727573742e636f6d2f555345525472757374525341416464547275737443412e637274302506082b060105050730018619687474703a2f2f6f6373702e7573657274727573742e636f6d300d06092a864886f70d01010c0500038202010032bf61bd0e48c34fc7ba474df89c781901dc131d806ffcc370b4529a31339a5752fb319e6ba4ef54aa898d401768f811107cd2cab1f15586c7eeb3369186f63951bf46bf0fa0bab4f77e49c42a36179ee468397aaf944e566fb27b3bbf0a86bdcdc5771c03b838b1a21f5f7edb8adc4648b6680acfb2b5b4e234e467a93866095ed2b8fc9d283a174027c2724e29fd213c7ccf13fb962cc53144fd13edd59ba96968777ceee1ffa4f93638085339a284349c19f3be0eacd52437eb23a878d0d3e7ef924764623922efc6f711be2285c6664424268e10328dc893ae079e833e2fd9f9f5468e63bec1e6b4dca6cd21a8860a95d92e85261afdfcb1b657426d95d133f6391406824138f58f58dc805ba4d57d9578fda79bfffdc5a869ab26e7a7a405875ba9b7b8a3200b97a94585ddb38be589378e290dfc0617f638400e42e41206fb7bf3c6116862dfe398f413d8154f8bb169d91060bc642aea31b7e4b5a33a149b26e30b7bfd028eb699c138975936f6a874a286b65eebc664eacfa0a3f96e9eba2d11b6869808582dc9ac2564f25e75b438c1ae7f5a4683ea51cab6f19911356ba56a7bc600b0e7f8be64b2adc8c2f1ace351eaa493e079c8e18140c90a5be1123cc1602ae397c08942ca94cf46981269bb98d0c2d30d724b476ee593c43228638743e4b0323e0ad34bbf239b1429412b9a041f932df1c739483cad5a127f85050000000000003082058130820469a00302010202103972443af922b751d7d36c10dd313595300d06092a864886f70d01010c0500307b310b3009060355040613024742311b301906035504080c1247726561746572204d616e636865737465723110300e06035504070c0753616c666f7264311a3018060355040a0c11436f6d6f646f204341204c696d697465643121301f06035504030c18414141204365727469666963617465205365727669636573301e170d3139303331323030303030305a170d3238313233313233353935395a308188310b3009060355040613025553311330110603550408130a4e6577204a6572736579311430120603550407130b4a65727365792043697479311e301c060355040a131554686520555345525452555354204e6574776f726b312e302c06035504031325555345525472757374205253412043657274696669636174696f6e20417574686f7269747930820222300d06092a864886f70d01010105000382020f003082020a028202010080126517360ec3db08b3d0ac570d76edcd27d34cad508361e2aa204d092d6409dcce899fcc3da9ecf6cfc1dcf1d3b1d67b3728112b47da39c6bc3a19b45fa6bd7d9da36342b676f2a93b2b91f8e26fd0ec162090093ee2e874c918b491d46264db7fa306f188186a90223cbcfe13f087147bf6e41f8ed4e451c61167460851cb8614543fbc33fe7e6c9cff169d18bd518e35a6a766c87267db2166b1d49b7803c0503ae8ccf0dcbc9e4cfeaf0596351f575ab7ffcef93db72cb6f654ddc8e7123a4dae4c8ab75c9ab4b7203dca7f2234ae7e3b68660144e7014e46539b3360f794be5337907343f332c353efdbaafe744e69c76b8c6093dec4c70cdfe132aecc933b517895678bee3d56fe0cd0690f1b0ff325266b336df76e47fa7343e57e0ea566b1297c3284635589c40dc19354301913acd37d37a7eb5d3a6c355cdb41d712daa9490bdfd8808a0993628eb566cf2588cd84b8b13fa4390fd9029eeb124c957cf36b05a95e1683ccb867e2e8139dcc5b82d34cb3ed5bffdee573ac233b2d00bf3555740949d849581a7f9236e651920ef3267d1c4d17bcc9ec4326d0bf415f40a94444f499e757879e501f5754a83efd74632fb1506509e658422e431a4cb4f0254759fa041e93d426464a5081b2debe78b7fc6715e1c957841e0f63d6e962bad65f552eea5cc62808042539b80e2ba9f24c971c073f0d52f5edef2f820f0203010001a381f23081ef301f0603551d23041830168014a0110a233e96f107ece2af29ef82a57fd030a4b4301d0603551d0e041604145379bf5aaa2b4acf5480e1d89bc09df2b20366cb300e0603551d0f0101ff040403020186300f0603551d130101ff040530030101ff30110603551d20040a300830060604551d200030430603551d1f043c303a3038a036a0348632687474703a2f2f63726c2e636f6d6f646f63612e636f6d2f414141436572746966696361746553657276696365732e63726c303406082b0601050507010104283026302406082b060105050730018618687474703a2f2f6f6373702e636f6d6f646f63612e636f6d300d06092a864886f70d01010c05000382010100188751dc74213d9c8ae027b733d02eccecf0e6cb5e11de226f9b758e9e72fee4d6feaa1f9c962def034a7eaef48d6f723c433bc03febb8df5caaa9c6aef2fcd8eea37b43f686367c14e0cdf4f73ffedeb8b48af09196fefd43647efdccd201a17d7df81919c9422b13bf588bbaa4a266047688914e0c8914cea24dc932b3bae8141abc71f15bf0410b98000a220310e50cb1f9cd923719ed3bf1e43ab6f945132675afbbaaef3f7b773bd2c402913d1900d3175c39db3f7b180d45cd9385962f5ddf59164f3f51bdd545183fed4a8ee80661742316b50d50732744477f105d892a6b853114c4e8a96a4c80bc6a78cfb87f8e7672990c9dfed7910816a1a35f95080000000001000000000000807075ac0db7f9f53b63fe8b0234b52ffe013c384d8c3b4519b8f226e6730beab8e5aa9d42113e89e34d44b958f55c9a2f22a82cc957e85cd9894c6d234db194d41c08542c34fd39220111c85c5ca1e2e4a707a3d67ac2f0561a3fa211925cbe7aff3f75af0f58884a04570d52d9378b70b6007c47f58a7759f02929040da024156ac40698910ed02a756c125f6368f698919cc6b0edb796ee589962e597869ad7f6715b04cfb82b76de71a13ef5297cdeb86416b31bb884b4de3f09da7c7f98311557745efd3910a33bd395262526539a88783678823a4daabf2d709f71f02fc520cce39e14d07fa7d64f02b88e4449c7811288e04189d9f58a69e7fc9146f1000000001625cce068c27f9c28ecfc10acb4f6fa495799456ff44f6539a52f1725f2cc306836b596128b669333c0dcd38fa7ff41b6db10cabeb3e1dc444f574e4752440100000000410000000000000004f885ed8a8d7fd6fd3a18176f8bcaa3831ab2b4c6d5373ce0023aac7bf41d4dc4b0e62f6eb925fd14567cf2e8a3615015e7ea63e8ed24db2bd350a3b45cafa6eaad0b5d443a99a9eb8688bc13a2fe18a601e1000000000000004745542068747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f746c736e6f746172792f746c736e2f726566732f68656164732f6d61696e2f6372617465732f7365727665722d666978747572652f7365727665722f7372632f646174612f70726f7465637465645f646174612e6a736f6e20485454502f312e310d0a636f6e6e656374696f6e3a20636c6f73650d0a686f73743a207261772e67697468756275736572636f6e74656e742e636f6d0d0a0d0a636f6e74656e742d747970653a206170706c69636174696f6e2f6a736f6e0d0a0d0aa501000000000000485454502f312e3120323030204f4b0d0a43616368652d436f6e74726f6c3a206d61782d6167653d3330300d0a436f6e74656e742d53656375726974792d506f6c6963793a2064656661756c742d73726320276e6f6e65273b207374796c652d7372632027756e736166652d696e6c696e65273b2073616e64626f780d0a436f6e74656e742d547970653a20746578742f706c61696e3b20636861727365743d7574662d380d0a455461673a202262343238336233653662326561376530363739613230333464363362646132363039633165663433353931346638343231633366666530636636383261363839220d0a5374726963742d5472616e73706f72742d53656375726974793a206d61782d6167653d3331353336303030582d436f6e74656e742d547970652d4f7074696f6e733a206e6f736e696666582d4672616d652d4f7074696f6e733a2064656e79582d5853532d50726f74656374696f6e3a20313b206d6f64653d626c6f636b226964223a20313233343536373839302263697479223a2022416e79746f776e2222706f7374616c436f6465223a202231323334352202000000000000000000000000000000bd00000000000000d000000000000000f400000000000000080000000000000000000000000000001100000000000000390000000000000044010000000000004601000000000000650100000000000067010000000000007c010000000000007e010000000000009d010000000000007c030000000000008c03000000000000f203000000000000030400000000000020040000000000003504000000000000f400000000000000130600000000000001020e0000000000000000000000000000000e000000000000000b00000000000000010000000100000000000000200400000000000035040000000000009efd5f7c72134a54d5bb3c54b2825c7a02000000000000000100000001000000000000007e010000000000009d0100000000000055242b5ed15958771b7abd26cd6fa3b7000000000000000001000000010000000000000039000000000000005500000000000000e708104c63bcc9f67c7c5e620b3f06af06000000000000000100000001000000000000000000000000000000110000000000000057c0914e57810ee2abd8684617a2f1660a00000000000000010000000100000000000000f203000000000000030400000000000070a61f16f45c8111734c2bb1908471a903000000000000000100000001000000000000001901000000000000440100000000000031d11918b068c91dad429ecfd1eeccbc0d00000000000000010000000100000000000000cf0000000000000019010000000000005ab9ebf19270ae59d70bb2c8dca4080b04000000000000000100000001000000000000005500000000000000a6000000000000008e841a1946e87bb5e2e87b3ecaf71ae60700000000000000010000000100000000000000460100000000000065010000000000007a458714efc9803403cb56fe30a5e1340500000000000000000000000100000000000000d000000000000000f400000000000000a150b03efbdd2302f0f058fc3a0dbfff0100000000000000010000000100000000000000a600000000000000cf00000000000000fe86e5f430e6b2f38fa7b96aa2b18645080000000000000001000000010000000000000067010000000000007c01000000000000fa641e31531fc003e9fc98f36d80a1540c000000000000000000000001000000000000000000000000000000bd00000000000000b12fa5c50728418dd8a6ccfcaf6d52b209000000000000000100000001000000000000007c030000000000008c0300000000000053c8fd372559e892423811e68a8bacbe0000000000000000`;
|
|
const proof = (await new Presentation(proofHex)) as _Presentation;
|
|
const result = await proof.verify();
|
|
console.timeEnd('verify');
|
|
const transcript = new Transcript({
|
|
sent: result.transcript.sent,
|
|
recv: result.transcript.recv,
|
|
});
|
|
|
|
const sent = transcript.sent();
|
|
const recv = transcript.recv();
|
|
|
|
// @ts-ignore
|
|
document.getElementById('simple-verify').textContent = JSON.stringify({
|
|
sent,
|
|
recv
|
|
}, null, 2);
|
|
} catch (err) {
|
|
console.log('caught error from wasm');
|
|
console.error(err);
|
|
|
|
// @ts-ignore
|
|
document.getElementById('simple-verify').textContent = err.message;
|
|
}
|
|
})();
|