Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.mdns.eu/nextcloud/passwords-client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius David Wieschollek <passwords.public@mdns.eu>2021-06-18 15:45:27 +0300
committerMarius David Wieschollek <passwords.public@mdns.eu>2021-06-18 15:45:27 +0300
commit248c1b4e36bbbd73b73ddc886dd9366dd6727124 (patch)
tree97fb13ff8ac488ea61f261ca9cef1c4a1bfdb8ed
parentecb2d1a2550b7ad73149fb225b2c97e50c01688f (diff)
parent1264cb8b09e58eefe3faa3392deed5165c8190a7 (diff)
Merge branch 'testing' into stable
-rw-r--r--package-lock.json52
-rw-r--r--package.json8
-rw-r--r--src/Classes/EnhancedApi.js17
3 files changed, 19 insertions, 58 deletions
diff --git a/package-lock.json b/package-lock.json
index 2cedb94..2bd31f8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,56 +1,8 @@
{
"name": "passwords-client",
- "version": "0.0.12",
- "lockfileVersion": 2,
+ "version": "0.0.13",
+ "lockfileVersion": 1,
"requires": true,
- "packages": {
- "": {
- "version": "0.0.12",
- "license": "ISC",
- "dependencies": {
- "eventemitter3": "^3.1.2",
- "libsodium-wrappers": "^0.7.8",
- "url-parse": "^1.4.7"
- }
- },
- "node_modules/eventemitter3": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
- "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
- },
- "node_modules/libsodium": {
- "version": "0.7.9",
- "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz",
- "integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A=="
- },
- "node_modules/libsodium-wrappers": {
- "version": "0.7.9",
- "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz",
- "integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==",
- "dependencies": {
- "libsodium": "^0.7.0"
- }
- },
- "node_modules/querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
- },
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
- },
- "node_modules/url-parse": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz",
- "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==",
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- }
- },
"dependencies": {
"eventemitter3": {
"version": "3.1.2",
diff --git a/package.json b/package.json
index 462c948..71248f2 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "passwords-client",
- "version": "0.0.12",
- "description": "JS client library for the Nextcloud Passwords app",
+ "version": "0.0.13",
+ "description": "JS client library for the Passwords app for Nextcloud",
"main": "src/main.js",
"author": "Marius Wieschollek",
"license": "ISC",
@@ -17,7 +17,7 @@
},
"dependencies": {
"eventemitter3": "^3.1.2",
- "libsodium-wrappers": "^0.7.8",
- "url-parse": "^1.4.7"
+ "libsodium-wrappers": "^0.7.9",
+ "url-parse": "^1.5.1"
}
}
diff --git a/src/Classes/EnhancedApi.js b/src/Classes/EnhancedApi.js
index 1de0963..ce1fbff 100644
--- a/src/Classes/EnhancedApi.js
+++ b/src/Classes/EnhancedApi.js
@@ -43,6 +43,7 @@ export default class EnhancedApi extends SimpleApi {
if(!config.folderIcon) config.folderIcon = `${config.baseUrl}core/img/filetypes/folder.svg`;
if(!config.apiUrl) config.apiUrl = `${config.baseUrl}index.php/apps/passwords/`;
+ if(!config.hashLength) config.hashLength = 40;
if(!config.encryption) config.encryption = new Encryption();
if(!config.cseMode || ['none', 'CSEv1r1'].indexOf(config.cseMode) === -1) config.cseMode = 'none';
@@ -70,10 +71,18 @@ export default class EnhancedApi extends SimpleApi {
*
* @param value
* @param algorithm
+ * @param [length=40]
* @returns {Promise<string>}
*/
- getHash(value, algorithm = 'SHA-1') {
- return this.config.encryption.getHash(value, algorithm);
+ getHash(value, algorithm = 'SHA-1', length = null) {
+ if(length === null) length = this._config.hashLength;
+ let hash = this.config.encryption.getHash(value, algorithm);
+
+ if(length !== 40) {
+ return hash.substr(0, length);
+ }
+
+ return hash;
}
/**
@@ -165,7 +174,7 @@ export default class EnhancedApi extends SimpleApi {
}
if(!object.hasOwnProperty('_encrypted')) object._encrypted = false;
- object.hash = await this.config.encryption.getHash(data.password);
+ object.hash = await this.getHash(data.password);
if(!object.label) this._generatePasswordTitle(object);
if(this.config.encryption.enabled && object.cseType !== 'none') {
@@ -196,7 +205,7 @@ export default class EnhancedApi extends SimpleApi {
}
if(!object.hasOwnProperty('_encrypted')) object._encrypted = false;
- object.hash = await this.config.encryption.getHash(data.password);
+ object.hash = await this.getHash(data.password);
if(!object.label) this._generatePasswordTitle(object);
if(this.config.encryption.enabled && object.cseType !== 'none' && (!data.hasOwnProperty('shared') || !data.shared)) {