diff --git a/example/encryptFile.html b/example/encryptFile.html
index 047b2b68..f0b73a19 100644
--- a/example/encryptFile.html
+++ b/example/encryptFile.html
@@ -7,7 +7,7 @@
Document
-
+
diff --git a/package-lock.json b/package-lock.json
index 5265d138..31adc773 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@virgilsecurity/e3kit",
- "version": "0.3.9",
+ "version": "0.4.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -1422,17 +1422,6 @@
}
}
},
- "cp-file": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz",
- "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==",
- "requires": {
- "graceful-fs": "^4.1.2",
- "make-dir": "^3.0.0",
- "nested-error-stacks": "^2.0.0",
- "p-event": "^4.1.0"
- }
- },
"cpx": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz",
@@ -3165,7 +3154,8 @@
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
},
"growl": {
"version": "1.10.5",
@@ -4567,21 +4557,6 @@
"sourcemap-codec": "^1.4.1"
}
},
- "make-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
- "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
- "requires": {
- "semver": "^6.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz",
- "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ=="
- }
- }
- },
"map-cache": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
@@ -4847,11 +4822,6 @@
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
"dev": true
},
- "nested-error-stacks": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz",
- "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug=="
- },
"next-tick": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
@@ -4865,9 +4835,9 @@
"dev": true
},
"node-fetch": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz",
- "integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw=="
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"normalize-path": {
"version": "1.0.0",
@@ -5094,18 +5064,11 @@
"os-tmpdir": "^1.0.0"
}
},
- "p-event": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.1.0.tgz",
- "integrity": "sha512-4vAd06GCsgflX4wHN1JqrMzBh/8QZ4j+rzp0cd2scXRwuBEv+QR3wrVA5aLhWDLw4y2WgDKvzWF3CCLmVM1UgA==",
- "requires": {
- "p-timeout": "^2.0.1"
- }
- },
"p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
},
"p-map": {
"version": "1.2.0",
@@ -5113,14 +5076,6 @@
"integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=",
"dev": true
},
- "p-timeout": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
- "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
- "requires": {
- "p-finally": "^1.0.0"
- }
- },
"parse-glob": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
@@ -7407,9 +7362,9 @@
}
},
"virgil-crypto": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.3.tgz",
- "integrity": "sha512-S+Qo39isymVE2DbKDJNZZu4ENQa/niWNwtA0kDfn6+EoFRDzUL9A1QxwR3pTNoWwzcJqJujR2/hKQZSezANCwA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.4.tgz",
+ "integrity": "sha512-ISJ1He0JyqRHElXUGMm4FQUrei8CmemJQxw0kUUUWqp12nNYgCcucdZ4fVqNWaQ50n5pamp9vtzTlLjrpAheyw==",
"requires": {
"node-fetch": "^2.1.2",
"readable-stream": "^3.0.6",
@@ -7439,9 +7394,9 @@
}
},
"virgil-sdk": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/virgil-sdk/-/virgil-sdk-5.2.2.tgz",
- "integrity": "sha512-/Up7GdTHCgcfxidCoUYEdeDGYX59Bvp8JCcecvRc4KQJ4KxBv0cCvfVMGUWQUmBa4siVyW9gXxqWx5ZHP6ehGA==",
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/virgil-sdk/-/virgil-sdk-5.2.3.tgz",
+ "integrity": "sha512-uxKjMcAUMazqq0dEvC0BKw4WqiQyhHl8n+BKDsKP2b9mqxWWHx+ndr4egnjpw3ewKaAsvG3LaIqAUDlDVcvrCA==",
"requires": {
"fetch-ponyfill": "^6.0.2",
"mkdirp": "^0.5.1",
diff --git a/package.json b/package.json
index aed69f3f..80de4911 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@virgilsecurity/e3kit",
- "version": "0.4.0",
+ "version": "0.4.1",
"description": "End-to-end encryption with multiple device support powered by Virgil Security",
"main": "./dist/e3kit.browser.es.js",
"module": "./dist/e3kit.browser.es.js",
@@ -23,7 +23,7 @@
"precommit": "lint-staged",
"test": "karma start",
"docs": "typedoc src && npm run build:browser:umd && npm run encryptFileDoc",
- "encryptFileDoc": "cpx example/encryptFile.html docs && cpx dist/e3kit.browser.umd.min.js docs"
+ "encryptFileDoc": "cpx example/encryptFile.html docs"
},
"lint-staged": {
"src/**/*.ts": [
@@ -33,9 +33,9 @@
},
"dependencies": {
"@virgilsecurity/keyknox": "^0.2.4",
- "virgil-crypto": "^3.2.3",
+ "virgil-crypto": "^3.2.4",
"virgil-pythia": "^0.2.3",
- "virgil-sdk": "^5.2.2"
+ "virgil-sdk": "^5.2.3"
},
"peerDependencies": {},
"devDependencies": {
diff --git a/src/EThree.ts b/src/EThree.ts
index d0a43498..ffeeece2 100644
--- a/src/EThree.ts
+++ b/src/EThree.ts
@@ -59,11 +59,11 @@ export default class EThree {
/**
* Instance of [VirgilCrypto](https://github.com/virgilsecurity/virgil-crypto-javascript).
*/
- virgilCrypto = new VirgilCrypto();
+ virgilCrypto: VirgilCrypto;
/**
* Instance of VirgilCardCrypto.
*/
- cardCrypto = new VirgilCardCrypto(this.virgilCrypto);
+ cardCrypto: VirgilCardCrypto;
/**
* Instance of VirgilCardVerifier.
*/
@@ -105,10 +105,19 @@ export default class EThree {
* @param identity - Identity of the current user.
*/
constructor(identity: string, options: EThreeCtorOptions) {
- const opts = withDefaults(options, { apiUrl: DEFAULT_API_URL });
+ const opts = withDefaults(options, {
+ apiUrl: DEFAULT_API_URL,
+ storageName: STORAGE_NAME,
+ useSha256Identifiers: false,
+ });
+
this.identity = identity;
this.accessTokenProvider = opts.accessTokenProvider;
- this.keyEntryStorage = opts.keyEntryStorage || new KeyEntryStorage(STORAGE_NAME);
+
+ this.keyEntryStorage = opts.keyEntryStorage || new KeyEntryStorage(opts.storageName);
+ this.virgilCrypto = new VirgilCrypto({ useSha256Identifiers: opts.useSha256Identifiers });
+ this.cardCrypto = new VirgilCardCrypto(this.virgilCrypto);
+
this.cardVerifier = new VirgilCardVerifier(this.cardCrypto, {
verifySelfSignature: opts.apiUrl === DEFAULT_API_URL,
verifyVirgilSignature: opts.apiUrl === DEFAULT_API_URL,
diff --git a/src/types.ts b/src/types.ts
index a453b497..852ba9a6 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -17,6 +17,14 @@ export interface EThreeInitializeOptions {
* Url of the Card Services. Used for development purposes.
*/
apiUrl?: string;
+ /**
+ * Indicates whether to use old algorithm to calculate keypair identifiers.
+ */
+ useSha256Identifiers?: boolean;
+ /**
+ * Name of the IndexedDB database. Default `.virgil-local-storage`.
+ */
+ storageName?: string;
}
/**