Add function to get sharing keys

This commit is contained in:
brantje 2016-09-25 22:02:58 +02:00
parent 1aae11b6bf
commit b1728da8e2
5 changed files with 15 additions and 8 deletions

View file

@ -8,6 +8,8 @@ angular.module('passmanApp')
$scope.progress = 1;
$scope.generating = false;
$scope.sharing_keys = ShareService.getSharingKeys();
$scope.generateKeys = function (length) {
$scope.progress = 1;
$scope.generating = true;
@ -27,7 +29,6 @@ angular.module('passmanApp')
var _vault = angular.copy($scope.active_vault);
_vault.private_sharing_key = EncryptService.encryptString(_vault.private_sharing_key);
_vault.public_sharing_key = EncryptService.encryptString(_vault.public_sharing_key);
VaultService.updateSharingKeys(_vault).then(function (result) {
console.log('done')
})

View file

@ -8,8 +8,7 @@
* Service in the passmanApp.
*/
angular.module('passmanApp')
.service('ShareService', ['$http', function ($http) {
var _tags = [];
.service('ShareService', ['$http', 'VaultService', 'EncryptService', function ($http, VaultService, EncryptService) {
return {
search: function (string) {
var queryUrl = OC.generateUrl('apps/passman/api/v2/sharing/search');
@ -47,6 +46,13 @@ angular.module('passmanApp')
'privateKey' : forge.pki.privateKeyToPem(keypair.privateKey)
};
},
getSharingKeys: function(){
var vault = VaultService.getActiveVault();
return{
'private_sharing_key': EncryptService.decryptString(angular.copy(vault.private_sharing_key)),
'public_sharing_key': vault.public_sharing_key
};
},
rsaPrivateKeyFromPEM: function(private_pem) {
return forge.pki.privateKeyFromPem(private_pem);
},

View file

@ -63,7 +63,7 @@ angular.module('views/partials/forms/settings/import.html', []).run(['$templateC
angular.module('views/partials/forms/settings/sharing.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/partials/forms/settings/sharing.html',
'<div ng-controller="SharingSettingsCtrl"><div class="row"><div class="col-md-6"><label>Private Key</label><textarea class="col-md-12">{{active_vault.private_sharing_key}}</textarea></div><div class="col-md-6"><label>Public key</label><textarea class="col-md-12">{{active_vault.public_sharing_key}}</textarea></div></div><div class="row"><div class="col-md-12"><label>Key size<select ng-model="key_size"><option value="512">512</option><option value="1024">1024</option><option value="2048">2048</option><option value="4096">4096</option></select><button ng-if="!generating" ng-click="generateKeys(key_size)">Generate sharing keys</button> <button ng-if="generating"><i class="fa fa-spinner fa-spin"></i> Generating sharing keys step {{progress}}/2</button></label></div></div></div>{{active_vault}}');
'<div ng-controller="SharingSettingsCtrl"><div class="row"><div class="col-md-6"><label>Private Key</label><textarea class="col-md-12">{{sharing_keys.private_sharing_key}}</textarea></div><div class="col-md-6"><label>Public key</label><textarea class="col-md-12">{{sharing_keys.public_sharing_key}}</textarea></div></div><div class="row"><div class="col-md-12"><label>Key size<select ng-model="key_size"><option value="512">512</option><option value="1024">1024</option><option value="2048">2048</option><option value="4096">4096</option></select><button ng-if="!generating" ng-click="generateKeys(key_size)">Generate sharing keys</button> <button ng-if="generating"><i class="fa fa-spinner fa-spin"></i> Generating sharing keys step {{progress}}/2</button></label></div></div></div>');
}]);
angular.module('views/partials/forms/settings/tool.html', []).run(['$templateCache', function($templateCache) {

View file

@ -50,6 +50,7 @@ class Vault extends Entity implements \JsonSerializable{
// add types in constructor
$this->addType('created', 'integer');
$this->addType('lastAccess', 'integer');
$this->addType('sharing_keys_generated', 'integer');
}
/**
* Turns entity attributes into an array

View file

@ -3,11 +3,11 @@
<div class="row">
<div class="col-md-6">
<label>Private Key</label>
<textarea class="col-md-12">{{active_vault.private_sharing_key}}</textarea>
<textarea class="col-md-12">{{sharing_keys.private_sharing_key}}</textarea>
</div>
<div class="col-md-6">
<label>Public key</label>
<textarea class="col-md-12">{{active_vault.public_sharing_key}}</textarea>
<textarea class="col-md-12">{{sharing_keys.public_sharing_key}}</textarea>
</div>
</div>
<div class="row">
@ -24,5 +24,4 @@
</label>
</div>
</div>
</div>
{{active_vault}}
</div>