private void buttonGenerateKeypairsForUser_Click(object sender, EventArgs e) { try { if (string.IsNullOrEmpty(this.textBoxNewUserId.Text)) { MessageBox.Show("You must enter a username"); return; } this.newUserId = GuidCreator.CreateGuidFromString(this.textBoxNewUserId.Text); if (this.masterKeypair == null) { MessageBox.Show("You must load master key pair first"); return; } string filename = FileDialogs.AskUserForFileNameToSaveIn(); if (!string.IsNullOrEmpty(filename)) { if (!Path.HasExtension(filename)) { filename = filename + ".xml"; } this.signKeyPair = DataSigner.GenerateSignKeyPair(); IPreService proxy = GetPreProxy(); this.userKeypair = proxy.GenerateKeyPair(); proxy = GetPreProxy(); this.delegationToken.ToUser = proxy.GenerateDelegationKey(this.masterKeypair.Private, this.userKeypair.Public); IGatewayService gateWayproxy = GetServiceProxy(); gateWayproxy.RegisterUser(this.myId, this.newUserId, this.delegationToken, this.signKeyPair.PublicOnly); UserKeys uk = new UserKeys(); uk.MasterKeyPublicKey = Convert.ToBase64String(this.masterKeypair.Public); uk.UserPrivateKey = Convert.ToBase64String(this.userKeypair.Private); uk.UserSignKeys = Convert.ToBase64String(this.signKeyPair.PublicAndPrivate); XmlFile.WriteFile(uk, filename); MessageBox.Show("Done"); } } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); Logger.LogError("Error generating user keypair", ex); } }
public byte[] GenerateDelegationKey(byte[] privateKeyForDelegator, byte[] publicKeyForDelegatee) { try { IPreService proxy = CreateProxy(); return(proxy.GenerateDelegationKey(privateKeyForDelegator, publicKeyForDelegatee)); } catch (Exception e) { Logger.LogError("Error generating delegation key", e); throw; } }