change email/password adjustments
This commit is contained in:
parent
aa7a3c442c
commit
bc431b896b
|
@ -77,7 +77,6 @@ angular
|
|||
|
||||
return {
|
||||
id: encryptedFolder.Id,
|
||||
'type': 0,
|
||||
name: cryptoService.decrypt(encryptedFolder.Name)
|
||||
};
|
||||
};
|
||||
|
@ -179,7 +178,6 @@ angular
|
|||
|
||||
return {
|
||||
id: unencryptedFolder.id,
|
||||
'type': 0,
|
||||
name: cryptoService.encrypt(unencryptedFolder.name, key)
|
||||
};
|
||||
};
|
||||
|
|
|
@ -116,14 +116,26 @@ angular
|
|||
return buffer.getBytes(16);
|
||||
};
|
||||
|
||||
_service.getPrivateKey = function () {
|
||||
_service.getPrivateKey = function (outputEncoding) {
|
||||
outputEncoding = outputEncoding || 'native';
|
||||
|
||||
if (_privateKey) {
|
||||
if (outputEncoding === 'raw') {
|
||||
var privateKeyAsn1 = forge.pki.privateKeyToAsn1(_privateKey);
|
||||
var privateKeyPkcs8 = forge.pki.wrapRsaPrivateKey(privateKeyAsn1);
|
||||
return forge.asn1.toDer(privateKeyPkcs8).getBytes();
|
||||
}
|
||||
|
||||
return _privateKey;
|
||||
}
|
||||
|
||||
if ($sessionStorage.privateKey) {
|
||||
var privateKeyBytes = forge.util.decode64($sessionStorage.privateKey);
|
||||
_privateKey = forge.pki.privateKeyFromAsn1(forge.asn1.fromDer(privateKeyBytes));
|
||||
|
||||
if (outputEncoding === 'raw') {
|
||||
return privateKeyBytes;
|
||||
}
|
||||
}
|
||||
|
||||
return _privateKey;
|
||||
|
|
|
@ -39,13 +39,23 @@
|
|||
reencryptedFolders = cipherService.encryptFolders(unencryptedFolders, _newKey);
|
||||
}).$promise;
|
||||
|
||||
var privateKey = cryptoService.getPrivateKey('raw'),
|
||||
reencryptedPrivateKey = null;
|
||||
if (privateKey) {
|
||||
reencryptedPrivateKey = cryptoService.encrypt(privateKey, _newKey, 'raw');
|
||||
}
|
||||
|
||||
$q.all([loginsPromise, foldersPromise]).then(function () {
|
||||
var request = {
|
||||
token: model.token,
|
||||
newEmail: model.newEmail.toLowerCase(),
|
||||
masterPasswordHash: _masterPasswordHash,
|
||||
newMasterPasswordHash: _newMasterPasswordHash,
|
||||
ciphers: reencryptedLogins.concat(reencryptedFolders)
|
||||
data: {
|
||||
ciphers: reencryptedLogins,
|
||||
folders: reencryptedFolders,
|
||||
privateKey: reencryptedPrivateKey
|
||||
}
|
||||
};
|
||||
|
||||
$scope.confirmPromise = apiService.accounts.email(request, function () {
|
||||
|
|
|
@ -39,11 +39,21 @@
|
|||
reencryptedFolders = cipherService.encryptFolders(unencryptedFolders, newKey);
|
||||
}).$promise;
|
||||
|
||||
var privateKey = cryptoService.getPrivateKey('raw'),
|
||||
reencryptedPrivateKey = null;
|
||||
if (privateKey) {
|
||||
reencryptedPrivateKey = cryptoService.encrypt(privateKey, newKey, 'raw');
|
||||
}
|
||||
|
||||
$q.all([loginsPromise, foldersPromise]).then(function () {
|
||||
var request = {
|
||||
masterPasswordHash: cryptoService.hashPassword(model.masterPassword),
|
||||
newMasterPasswordHash: cryptoService.hashPassword(model.newMasterPassword, newKey),
|
||||
ciphers: reencryptedLogins.concat(reencryptedFolders)
|
||||
data: {
|
||||
ciphers: reencryptedLogins,
|
||||
folders: reencryptedFolders,
|
||||
privateKey: reencryptedPrivateKey
|
||||
}
|
||||
};
|
||||
|
||||
$scope.savePromise = apiService.accounts.putPassword(request, function () {
|
||||
|
|
Loading…
Reference in New Issue