Fix some small scrutinizer issues

This commit is contained in:
brantje 2016-12-31 13:29:37 +01:00
parent 6b6ac0ddc5
commit 0c9d2468df
No known key found for this signature in database
GPG key ID: 5FF1D117F918687F
22 changed files with 58 additions and 4 deletions

View file

@ -16,4 +16,10 @@ tools:
php_mess_detector: true
php_code_sniffer: true
sensiolabs_security_checker: true
php_code_coverage: true
php_code_coverage: true
build_failure_conditions:
- 'issues.label("coding-style").new.count > 5'
- 'issues.severity(>= MAJOR).new.exists'
- 'elements.rating(<= D).new.exists'
- 'project.metric("scrutinizer.quality", < 7.5)'

View file

@ -82,6 +82,7 @@
redirectTo: '/'
});
}).config(['$httpProvider', function ($httpProvider) {
/** global: oc_requesttoken */
$httpProvider.defaults.headers.common.requesttoken = oc_requesttoken;
}]).config(function (localStorageServiceProvider) {
localStorageServiceProvider

View file

@ -35,6 +35,7 @@
'pascalprecht.translate'
]).config(['$httpProvider', function ($httpProvider) {
/** global: oc_requesttoken */
$httpProvider.defaults.headers.common.requesttoken = oc_requesttoken;
}]).config(function ($translateProvider) {
$translateProvider.useUrlLoader(OC.generateUrl('/apps/passman/api/v2/language'));

View file

@ -384,6 +384,7 @@
$scope.parseQR = function (QRCode) {
var re = /otpauth:\/\/(totp|hotp)\/(.*)\?(secret|issuer)=(.*)&(issuer|secret)=(.*)/, parsedQR, qrInfo;
qrInfo = [];
parsedQR = (QRCode.qrData.match(re));
if (parsedQR)
qrInfo = {

View file

@ -157,6 +157,7 @@
var private_key = EncryptService.decryptString(VaultService.getActiveVault().private_sharing_key);
private_key = ShareService.rsaPrivateKeyFromPEM(private_key);
/** global: forge */
crypted_shared_key = private_key.decrypt(forge.util.decode64(crypted_shared_key));
crypted_shared_key = EncryptService.encryptString(crypted_shared_key);

View file

@ -275,6 +275,7 @@
$scope.parseQR = function (QRCode) {
var re = /otpauth:\/\/(totp|hotp)\/(.*)\?(secret|issuer)=(.*)&(issuer|secret)=(.*)/, parsedQR, qrInfo;
qrInfo = [];
parsedQR = (QRCode.qrData.match(re));
if (parsedQR)
qrInfo = {

View file

@ -87,6 +87,7 @@
var key = base32tohex(scope.secret);
var epoch = Math.round(new Date().getTime() / 1000.0);
var time = leftpad(dec2hex(Math.floor(epoch / 30)), 16, '0');
/** global: jsSHA */
var hmacObj = new jsSHA(time, 'HEX');
var hmac = hmacObj.getHMAC(key, 'HEX', 'SHA-1', "HEX");
var offset = hex2dec(hmac.substring(hmac.length - 1));

View file

@ -124,6 +124,7 @@
var rng_psize, rng_state, rng_pool, rng_pptr, t, z, crypt_obj, num, buf, i
if (Arcfour.prototype.init = ARC4init, Arcfour.prototype.next = ARC4next, rng_psize = 256, null == rng_pool) {
/** global: navigator */
if (rng_pool = [], rng_pptr = 0, "undefined" != typeof navigator && "Netscape" == navigator.appName && navigator.appVersion < "5" && "undefined" != typeof window && window.crypto)for (z = window.crypto.random(32), t = 0; t < z.length; ++t)rng_pool[rng_pptr++] = 255 & z.charCodeAt(t)
try {
if (crypt_obj = null, "undefined" != typeof window && void 0 !== window.crypto ? crypt_obj = window.crypto : "undefined" != typeof window && void 0 !== window.msCrypto && (crypt_obj = window.msCrypto), void 0 !== crypt_obj && "function" == typeof crypt_obj.getRandomValues && rng_psize > rng_pptr)for (num = Math.floor((rng_psize - rng_pptr) / 2) + 1, buf = new Uint16Array(num), crypt_obj.getRandomValues(buf), i = 0; i < buf.length; i++)t = buf[i], rng_pool[rng_pptr++] = t >>> 8, rng_pool[rng_pptr++] = 255 & t

View file

@ -37,6 +37,7 @@
var invoker = $parse(attributes.onRead);
scope.imageData = null;
/** global: qrcode */
qrcode.callback = function (result) {
//console.log('QR callback:',result);
invoker(scope, {
@ -48,12 +49,14 @@
//element.val('');
};
element.bind("change", function (changeEvent) {
/** global: FileReader */
var reader = new FileReader(), file = changeEvent.target.files[0];
reader.readAsDataURL(file);
reader.onload = (function () {
return function (e) {
//gCtx.clearRect(0, 0, gCanvas.width, gCanvas.height);
scope.imageData = e.target.result;
/** global: qrcode */
qrcode.decode(e.target.result);
};
})(file);

View file

@ -297,7 +297,7 @@
this.plain_credential = master_promise.plain_credential;
};
this.credential_data = {};
/** global: C_Promise */
(new C_Promise(promise_credential_update, new password_data())).progress(function (data) {
master_promise.call_progress(data);
}).then(function (data) {
@ -306,7 +306,7 @@
master_promise.promises++;
master_promise.credential_data = data;
/** global: C_Promise */
(new C_Promise(promise_files_update, new password_data())).progress(function (data) {
master_promise.call_progress(data);
}).then(function () {
@ -318,6 +318,7 @@
});
master_promise.promises++;
/** global: C_Promise */
(new C_Promise(promise_revisions_update, new password_data())).progress(function (data) {
master_promise.call_progress(data);
}).then(function () {
@ -329,7 +330,7 @@
});
});
};
/** global: C_Promise */
return new C_Promise(promise_workload);
}
};

View file

@ -46,6 +46,7 @@
_key = VaultService.getActiveVault().vaultKey;
}
var rp = {};
/** global: sjcl */
var ct = sjcl.encrypt(_key, string, encryption_config, rp);
return window.btoa(ct);
},
@ -56,6 +57,7 @@
ciphertext = window.atob(ciphertext);
var rp = {};
try {
/** global: sjcl */
return sjcl.decrypt(_key, ciphertext, encryption_config, rp);
} catch (e) {
throw e;

View file

@ -107,10 +107,12 @@
}
// write the ArrayBuffer to a blob, and you're done
/** global: Blob */
bb = new Blob([ab], {
type: ftype
});
/** global: URL */
return URL.createObjectURL(bb);
}
};

View file

@ -35,6 +35,7 @@
.service('ShareService', ['$http', 'VaultService', 'EncryptService', 'CredentialService', function ($http, VaultService, EncryptService, CredentialService) {
// Setup sjcl random engine to max paranoia level and start collecting data
var paranoia_level = 10;
/** global: sjcl */
sjcl.random.setDefaultParanoia(paranoia_level);
sjcl.random.startCollectors();
@ -65,6 +66,7 @@
return $http.get(queryUrl, {search: userId}).then(function (response) {
if (response.data) {
for (var i = 0; i < response.data.length; i++) {
/** global: forge */
response.data[i].public_sharing_key = forge.pki.publicKeyFromPem(response.data[i].public_sharing_key);
}
return response.data;
@ -201,10 +203,13 @@
},
generateRSAKeys: function (key_length) {
/** global: C_Promise */
var p = new C_Promise(function () {
/** global: forge */
var state = forge.pki.rsa.createKeyPairGenerationState(key_length, 0x10001);
var step = function () {
// run for 100 ms
/** global: forge */
if (!forge.pki.rsa.stepKeyPairGenerationState(state, 100)) {
if (state.p !== null) {
// progress(50);
@ -227,8 +232,10 @@
},
generateSharedKey: function (size) {
size = size || 20;
/** global: C_Promise */
return new C_Promise(function () {
var t = this;
/** global: CRYPTO */
CRYPTO.PASSWORD.generate(size,
function (pass) {
t.call_then(pass);
@ -253,9 +260,11 @@
};
},
rsaPrivateKeyFromPEM: function (private_pem) {
/** global: forge */
return forge.pki.privateKeyFromPem(private_pem);
},
rsaPublicKeyFromPEM: function (public_pem) {
/** global: forge */
return forge.pki.publicKeyFromPem(public_pem);
},
/**
@ -267,6 +276,7 @@
var workload = function () {
if (this.current_index < this.vaults.length > 0 && this.vaults.length > 0) {
var _vault = angular.copy(this.vaults[this.current_index]);
/** global: forge */
_vault.key = forge.util.encode64(
_vault.public_sharing_key.encrypt(this.string)
);
@ -282,6 +292,7 @@
this.call_then(this.data);
}
};
/** global: C_Promise */
return new C_Promise(function () {
this.data = [];
this.vaults = vaults;

View file

@ -21,6 +21,7 @@
*/
// Importers should always start with this
/** global: PassmanImporter */
var PassmanImporter = PassmanImporter || {};
(function(window, $, PassmanImporter) {
'use strict';
@ -33,6 +34,7 @@ var PassmanImporter = PassmanImporter || {};
};
PassmanImporter.clippers.readFile = function (file_data) {
/** global: C_Promise */
return new C_Promise(function() {
var credential_list = [];
var re = /<textarea>(.*?)<\/textarea>/gi;

View file

@ -21,6 +21,7 @@
*/
// Importers should always start with this
/** global: PassmanImporter */
var PassmanImporter = PassmanImporter || {};
(function(window, $, PassmanImporter) {
'use strict';
@ -34,6 +35,7 @@ var PassmanImporter = PassmanImporter || {};
};
PassmanImporter.dashLaneCsv.readFile = function (file_data) {
/** global: C_Promise */
return new C_Promise(function(){
var rows = file_data.split('\n');
var credential_list = [];

View file

@ -21,6 +21,7 @@
*/
// Importers should always start with this
/** global: PassmanImporter */
var PassmanImporter = PassmanImporter || {};
(function(window, $, PassmanImporter) {
'use strict';
@ -34,6 +35,7 @@ var PassmanImporter = PassmanImporter || {};
};
PassmanImporter.keepassCsv.readFile = function (file_data) {
/** global: C_Promise */
var p = new C_Promise(function(){
var parsed_csv = PassmanImporter.readCsv(file_data);
var credential_list = [];

View file

@ -21,6 +21,7 @@
*/
// Importers should always start with this
/** global: PassmanImporter */
var PassmanImporter = PassmanImporter || {};
(function(window, $, PassmanImporter) {
'use strict';
@ -34,6 +35,7 @@ var PassmanImporter = PassmanImporter || {};
};
PassmanImporter.lastpassCsv.readFile = function (file_data) {
/** global: C_Promise */
return new C_Promise(function(){
var parsed_csv = PassmanImporter.readCsv(file_data);
var credential_list = [];

View file

@ -21,6 +21,7 @@
*/
// Importers should always start with this
/** global: PassmanImporter */
var PassmanImporter = PassmanImporter || {};
(function(window, $, PassmanImporter) {
'use strict';
@ -33,6 +34,7 @@ var PassmanImporter = PassmanImporter || {};
};
PassmanImporter.passmanJson.readFile = function (file_data) {
/** global: C_Promise */
return new C_Promise(function(){
var parsed_json = PassmanImporter.readJson(file_data);
var credential_list = [];

View file

@ -21,6 +21,7 @@
*/
// Importers should always start with this
/** global: PassmanImporter */
var PassmanImporter = PassmanImporter || {};
(function(window, $, PassmanImporter) {
'use strict';
@ -34,6 +35,7 @@ var PassmanImporter = PassmanImporter || {};
};
PassmanImporter.passpackCsv.readFile = function (file_data) {
/** global: C_Promise */
return new C_Promise(function(){
var parsed_csv = PassmanImporter.readCsv(file_data, false);
var credential_list = [];

View file

@ -21,6 +21,7 @@
*/
// Importers should always start with this
/** global: PassmanImporter */
var PassmanImporter = PassmanImporter || {};
(function(window, $, PassmanImporter) {
'use strict';
@ -36,6 +37,7 @@ var PassmanImporter = PassmanImporter || {};
};
PassmanImporter.randomData.readFile = function () {
/** global: C_Promise */
return new C_Promise(function () {
var tags =
['Social media',

View file

@ -21,6 +21,7 @@
*/
// Importers should always start with this
/** global: PassmanImporter */
var PassmanImporter = PassmanImporter || {};
(function(window, $, PassmanImporter) {
@ -36,6 +37,7 @@ var PassmanImporter = PassmanImporter || {};
};
PassmanImporter.zohoCsv.readFile = function (file_data) {
/** global: C_Promise */
return new C_Promise(function(){
var parsed_csv = PassmanImporter.readCsv(file_data, false);
var credential_list = [];

View file

@ -42,6 +42,8 @@ var CRYPTO = { // Global variables of the object:
* @param progress The process of the generation, optional, called each 4 characters generated.
*/
generate : function (length, callback, progress, start_string) {
/** global: paranoia_level */
/** global: sjcl */
if (!sjcl.random.isReady(paranoia_level)) {
setTimeout(this.generate(length, callback, progress, start_string), 500);
return;
@ -49,6 +51,7 @@ var CRYPTO = { // Global variables of the object:
if (start_string == null) start_string = "";
if (start_string.length < length) {
/** global: CRYPTO */
start_string += CRYPTO.RANDOM.getRandomASCII();
if (progress != null) progress(start_string.length / length * 100);
}
@ -80,6 +83,8 @@ var CRYPTO = { // Global variables of the object:
var ret = "";
while (ret.length < 4) {
/** global: paranoia_level */
/** global: sjcl */
var int = sjcl.random.randomWords(1, paranoia_level);
int = int[0];
@ -134,6 +139,7 @@ var CRYPTO = { // Global variables of the object:
initEngines : function (default_paranoia) {
paranoia_level = default_paranoia || 10;
/** global: sjcl */
sjcl.random.setDefaultParanoia(this.paranoia_level);
sjcl.random.startCollectors();