Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
generateHash(length) {
const randomBytes = kdbxweb.Random.getBytes(length);
let result = '';
for (let i = 0; i < length; i++) {
result += randomBytes[i].toString(16)[0];
}
return result;
},
generateMac() {
const segmentsCount = 6;
const randomBytes = kdbxweb.Random.getBytes(segmentsCount);
let result = '';
for (let i = 0; i < segmentsCount; i++) {
let segment = randomBytes[i].toString(16).toUpperCase();
if (segment.length < 2) {
segment = '0' + segment;
}
result += (result ? '-' : '') + segment;
}
return result;
},
get() {
const pseudoValue = this.pseudoValue;
const salt = this.salt;
const len = pseudoValue.length;
let byteLength = 0;
const valueBytes = new Uint8Array(len * 4);
const saltBytes = kdbxweb.Random.getBytes(len * 4);
let ch;
let bytes;
for (let i = 0; i < len; i++) {
ch = String.fromCharCode(pseudoValue.charCodeAt(i) ^ salt[i]);
bytes = kdbxweb.ByteUtils.stringToBytes(ch);
for (let j = 0; j < bytes.length; j++) {
valueBytes[byteLength] = bytes[j] ^ saltBytes[byteLength];
byteLength++;
}
}
return new kdbxweb.ProtectedValue(
valueBytes.buffer.slice(0, byteLength),
saltBytes.buffer.slice(0, byteLength)
);
}
});