Пример #1
0
		public Task<bool> SetPublicAndPrivateKey (LocalBox localBox, string passPhrase)
		{ 
			return Task.Run (() => {

				try {
					byte[] publicKey;
					byte[] privateKey;
					CryptoHelper.GenerateKeyPair (localBox.User, passPhrase, out publicKey, out privateKey);
					var explorer = new RemoteExplorer (localBox);

					var result = explorer.UpdateUser (new UserPost () {
						PublicKey = Convert.ToBase64String (publicKey),
						PrivateKey = Convert.ToBase64String (privateKey)
					});
					if (result) {
						localBox.PublicKey = publicKey;
						localBox.PrivateKey = privateKey;
						localBox.PassPhrase = passPhrase;
						DataLayer.Instance.AddOrUpdateLocalBox (localBox);
					}
					return result;
				} catch (Exception ex){
					Insights.Report(ex);
					return false;
				}

			});
		}