How to use the kdbxweb.Kdbx function in kdbxweb

To help you get started, we’ve selected a few kdbxweb examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github subdavis / Tusk / services / keepassService.js View on Github external
return passwordFileStoreRegistry.getChosenDatabaseFile(settings).then(function(buf) {
			var h = keepassHeader.readHeader(buf);
			if (!h) throw new Error('Failed to read file header');

			if (h.kdbx) { // KDBX - use kdbxweb library
				kdbxweb.CryptoEngine.argon2 = argon2;
				var kdbxCreds = jsonCredentialsToKdbx(masterKey);
				return kdbxweb.Kdbx.load(buf, kdbxCreds).then(db => {
					var psk = new Uint8Array(db.header.protectedStreamKey, 0, db.header.protectedStreamKey.length);
					var entries = parseKdbxDb(db.groups);
					majorVersion = db.header.versionMajor;
					return processReferences(entries, majorVersion);
				});
			} else { // KDB - we don't support this anymore
				throw "Unsupported Database Version";
			}
		}).then(function(entries) {
			return {
github subdavis / Tusk / services / keepassService.js View on Github external
return bufferPromise.then(function (buf) {
			var h = keepassHeader.readHeader(buf);
			if (!h) throw new Error('Failed to read file header');

			if (h.kdbx) { // KDBX - use kdbxweb library
				kdbxweb.CryptoEngine.argon2 = argon2;
				var kdbxCreds = jsonCredentialsToKdbx(masterKey);
				return kdbxweb.Kdbx.load(buf, kdbxCreds).then(db => {
					var psk = new Uint8Array(db.header.protectedStreamKey, 0, db.header.protectedStreamKey.length);
					var entries = parseKdbxDb(db.groups);
					majorVersion = db.header.versionMajor;
					return processReferences(entries, majorVersion);
				});
			} else { // KDB - we don't support this anymore
				throw "Unsupported Database Version";
			}
		}).then(function (entries) {
			return {
github iotaledger / trinity-wallet / src / desktop / native / libs / kdbx.js View on Github external
const importVault = async (buffer, password) => {
    const credentials = new kdbxweb.Credentials(kdbxweb.ProtectedValue.fromString(password));

    const db = await kdbxweb.Kdbx.load(buffer, credentials);
    const entries = db.getDefaultGroup().entries;
    const seeds = [];

    for (let i = 0; i < entries.length; i++) {
        if (entries[i].fields.Seed) {
            seeds.push({
                title: entries[i].fields.Title || `Seed #${i + 1}`,
                seed: entries[i].fields.Seed.getText()
                    .split('')
                    .map((char) => charToByte(char.toUpperCase()))
                    .filter((byte) => byte > -1),
            });
        }
    }

    return seeds;
github mydicebot / mydicebot.github.io / src / api / controllers / apiController.js View on Github external
exports.keereg = async function(req, res) {
    try{
        let filePath = path.resolve(path.join(process.execPath, '../keepass/')+req.body.keepassfile+'.kdbx');
        if(isMobile(req)) {
            //filePath = path.resolve('/tmp/keepass/'+req.body.keepassfile+'.kdbx');
            filePath = path.resolve(path.join(__dirname, '../../keepass/'+req.body.keepassfile+'.kdbx'));
        }
        if(process.env.electron) {
            filePath = path.resolve(path.join(config.mydice.path, '/keepass/'+req.body.keepassfile+'.kdbx'));
        }
        let cred = new kdbxweb.Credentials(kdbxweb.ProtectedValue.fromString(req.body.keepassword));
        let db = kdbxweb.Kdbx.create(cred, 'mydicebot');
        //let subGroup = db.createGroup(db.getDefaultGroup(), 'mydicebot');
        db.save().then(ab => {
            fs.writeFileSync(filePath, Buffer.from(ab));
            return res.status(200).json('ok');
        });
    } catch(err) {
        console.log(err);
        return res.status(500).send({err: err.toString()});
    }
};
github keeweb / keeweb / app / scripts / models / file-model.js View on Github external
importWithXml(fileXml, callback) {
        try {
            const ts = logger.ts();
            const password = kdbxweb.ProtectedValue.fromString('');
            const credentials = new kdbxweb.Credentials(password);
            kdbxweb.Kdbx.loadXml(fileXml, credentials)
                .then(db => {
                    this.db = db;
                    this.readModel();
                    this.set({ active: true, created: true });
                    logger.info('Imported file ' + this.name + ': ' + logger.ts(ts));
                    callback();
                })
                .catch(err => {
                    logger.error('Error importing file', err.code, err.message, err);
                    callback(err);
                });
        } catch (e) {
            logger.error('Error importing file', e, e.code, e.message, e);
            callback(e);
        }
    }
github keeweb / keeweb / app / scripts / models / file-model.js View on Github external
credentialsPromise.then(() => {
            kdbxweb.Kdbx.load(fileData, credentials)
                .then(remoteDb => {
                    if (this.modified) {
                        try {
                            if (remoteKey && remoteDb.meta.keyChanged > this.db.meta.keyChanged) {
                                this.db.credentials = remoteDb.credentials;
                                this.keyFileName = remoteKey.keyFileName || '';
                                if (remoteKey.password) {
                                    this.passwordLength = remoteKey.password.textLength;
                                }
                            }
                            this.db.merge(remoteDb);
                        } catch (e) {
                            logger.error('File merge error', e);
                            return callback(e);
                        }
                    } else {
github iotaledger / trinity-wallet / src / desktop / native / libs / kdbx.js View on Github external
const exportVault = async (seeds, password) => {
    const credentials = new kdbxweb.Credentials(kdbxweb.ProtectedValue.fromString(password));
    const db = kdbxweb.Kdbx.create(credentials, 'Trinity');

    db.upgrade();

    for (let i = 0; i < seeds.length; i++) {
        const entry = db.createEntry(db.getDefaultGroup());
        entry.fields.Title = seeds[i].title || `IOTA Seed #${i + 1}`;
        entry.fields.Seed = kdbxweb.ProtectedValue.fromString(seeds[i].seed.map((byte) => byteToChar(byte)).join(''));
    }

    const chunk = await db.save();

    return chunk;
};
github mydicebot / mydicebot.github.io / src / api / controllers / apiController.js View on Github external
exports.keeload = async function(req, res) {
    try{
        let filePath = path.resolve(path.join(process.execPath, '../keepass/')+req.body.keepassfile+'.kdbx');
        if(isMobile(req)) {
            //filePath = path.resolve('/tmp/keepass/'+req.body.keepassfile+'.kdbx');
            filePath = path.resolve(path.join(__dirname, '../../keepass/'+req.body.keepassfile+'.kdbx'));
        }
        if(process.env.electron) {
            filePath = path.resolve(path.join(config.mydice.path, '/keepass/'+req.body.keepassfile+'.kdbx'));
        }
        let cred = new kdbxweb.Credentials(kdbxweb.ProtectedValue.fromString(req.body.keepassword));
        let data  = await fs.readFileSync(filePath);
        let db = await kdbxweb.Kdbx.load(new Uint8Array(data).buffer, cred);
        let kees = {};
        for (let group of db.groups) {
            if(group.name == 'mydicebot') {
                for (let subGroup of group.groups) {
                    let entrys = [];
                    for (let entry of subGroup.entries) {
                        let en = {};
                        en['username'] = field(entry, 'UserName');
                        en['password'] = field(entry, 'Password');
                        en['apikey'] = field(entry, 'ApiKey');
                        entrys.push(en);
                    }
                    kees[subGroup.name] = entrys;
                }
            }
        }
github keeweb / keeweb / app / scripts / models / file-model.js View on Github external
create(name) {
        const password = kdbxweb.ProtectedValue.fromString('');
        const credentials = new kdbxweb.Credentials(password);
        this.db = kdbxweb.Kdbx.create(credentials, name);
        this.name = name;
        this.readModel();
        this.set({ active: true, created: true, name });
    }
github iotaledger / trinity-wallet / src / mobile / nodejs-assets / nodejs-project / main.js View on Github external
const getSeedFromVault = async (buffer, password) => {
    const credentials = new kdbxweb.Credentials(kdbxweb.ProtectedValue.fromString(password));
    const db = await kdbxweb.Kdbx.load(buffer, credentials);

    const entry = db.getDefaultGroup().entries[0];

    const seed = entry.fields.Seed.getText();
    const title = entry.fields.Title;

    return JSON.stringify({ seed, title });
};