If all goes well, you should see messages printed below in a moment...
13 |{{ message }}
15 |If all goes well, you should see messages printed below in a moment...
12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/webpack/index.js: -------------------------------------------------------------------------------- 1 | import { EThree } from '@virgilsecurity/e3kit-browser'; 2 | 3 | const createGetToken = identity => async () => { 4 | const response = await fetch(`${process.env.API_URL}/virgil-jwt?identity=${identity}`); 5 | const { virgil_jwt: virgilJwt } = await response.json(); 6 | return virgilJwt; 7 | }; 8 | 9 | const report = message => { 10 | const paragraph = document.createElement('p'); 11 | const textNode = document.createTextNode(message); 12 | paragraph.appendChild(textNode); 13 | document.body.appendChild(paragraph); 14 | }; 15 | 16 | (async () => { 17 | try { 18 | const alice = await EThree.initialize(createGetToken(`alice-${Math.random()}`)); 19 | const bob = await EThree.initialize(createGetToken(`bob-${Math.random()}`)); 20 | 21 | report('Alice registers...'); 22 | await alice.register(); 23 | 24 | report('Alice creates private key backup...'); 25 | await alice.backupPrivateKey('alice_pa$$w0rd'); 26 | 27 | report('Bob registers...'); 28 | await bob.register(); 29 | 30 | report('Bob creates private key backup...'); 31 | await bob.backupPrivateKey('bob_pa$$w0rd'); 32 | 33 | report("Alice searches for Bob's card..."); 34 | const bobCard = await alice.findUsers(bob.identity); 35 | 36 | report('Alice encrypts message for Bob...'); 37 | const encryptedForBob = await alice.encrypt('Hello Bob!', bobCard); 38 | 39 | report("Bob searches for Alice's card..."); 40 | const aliceCard = await bob.findUsers(alice.identity); 41 | 42 | report('Bob decrypts the message...'); 43 | const decryptedByBob = await bob.decrypt(encryptedForBob, aliceCard); 44 | 45 | report('Decrypted message: ' + decryptedByBob); 46 | 47 | const groupId = 'AliceAndBobGroup'; 48 | 49 | report('Alice creates a group with Bob...'); 50 | const aliceGroup = await alice.createGroup(groupId, bobCard); 51 | 52 | report('Alice encrypts message for the group...'); 53 | const encryptedForGroup = await aliceGroup.encrypt('Hello group!'); 54 | 55 | report('Bob loads the group by ID from the Cloud...'); 56 | const bobGroup = await bob.loadGroup(groupId, aliceCard); 57 | 58 | report('Bob decrypts the group message...'); 59 | const decryptedByGroup = await bobGroup.decrypt(encryptedForGroup, aliceCard); 60 | 61 | report('Decrypted group message: ' + decryptedByGroup); 62 | 63 | report('Alice deletes group...'); 64 | await alice.deleteGroup(groupId); 65 | 66 | report('Alice deletes private key backup...'); 67 | await alice.resetPrivateKeyBackup(); 68 | 69 | report('Alice unregisters...'); 70 | await alice.unregister(); 71 | 72 | report('Bob deletes private key backup...'); 73 | await bob.resetPrivateKeyBackup(); 74 | 75 | report('Bob unregisters...'); 76 | await bob.unregister(); 77 | 78 | report('Success!'); 79 | } catch (error) { 80 | report(error.toString()); 81 | } 82 | })(); 83 | -------------------------------------------------------------------------------- /examples/webpack/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@virgilsecurity/example-webpack", 3 | "version": "2.4.5", 4 | "description": "Virgil E3Kit SDK + Webpack usage example", 5 | "repository": "https://github.com/VirgilSecurity/virgil-e3kit-js/tree/master/packages/example-webpack", 6 | "author": "Virgil Security Inc.<%= link.title %> | 29 |v<%= link.version %> |
30 |