1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 08:43:33 +00:00

Cipher service setup. Bind data for site view.

This commit is contained in:
Kyle Spearrin
2016-09-06 00:22:47 -04:00
parent e83d09ff6d
commit 0402ec648d
6 changed files with 127 additions and 51 deletions

View File

@@ -0,0 +1,77 @@
angular
.module('bit.services')
.factory('cipherService', function (cryptoService, $q) {
var _service = {};
_service.encryptSite = function (site, callback) {
var model = {};
cryptoService.encrypt(site.name, function (nameCipherString) {
model.name = nameCipherString;
cryptoService.encrypt(site.uri, function (uriCipherString) {
model.uri = uriCipherString;
cryptoService.encrypt(site.username, function (usernameCipherString) {
model.username = usernameCipherString;
cryptoService.encrypt(site.password, function (passwordCipherString) {
model.password = passwordCipherString;
cryptoService.encrypt(site.notes, function (notesCipherString) {
model.notes = notesCipherString;
callback(model);
});
});
});
});
});
}
_service.decryptSite = function (site) {
var model = {
id: site.id,
folderId: site.folderId,
favorite: site.favorite
};
return $q(function (resolve, reject) {
decrypt(site.name).then(function (obj) {
model.name = obj.val;
return decrypt(site.uri);
}).then(function (obj) {
model.uri = obj.val;
return decrypt(site.username);
}).then(function (obj) {
model.username = obj.val;
return decrypt(site.password);
}).then(function (obj) {
model.password = obj.val;
return decrypt(site.notes);
}).then(function (obj) {
model.notes = obj.val;
resolve(model);
});
});
}
_service.decrypt = decrypt;
function decrypt(cipherString, index) {
return $q(function (resolve, reject) {
if (!cipherString) {
resolve({
val: null,
index: index
});
}
else {
cipherString.decrypt(function (decVal) {
resolve({
val: decVal,
index: index
});
});
}
});
}
return _service;
});