public void MeshStore () {
File.Delete(Store);
File.Delete(Portal);
Mesh = new Mesh(Service, Store, Portal);
Mesh.CheckAccount(AccountID);
var DevProfile = new SignedDeviceProfile(Device1, Device1Description);
var UserProfile = new PersonalProfile(DevProfile);
var SignedProfile = UserProfile.Signed;
Mesh.CreateAccount(AccountID, SignedProfile);
// Add the device to the profile entry in the parent.
var PasswordProfile = new PasswordProfile(true);
var SignedPasswordProfile = PasswordProfile.Signed;
SignedProfile = UserProfile.Signed;
Mesh.AddProfile(SignedPasswordProfile);
Mesh.UpdateProfile(SignedProfile);
// ok now pull the profile as a client.
var Account = Mesh.GetAccount(AccountID);
var AccountPersonalProfile = Mesh.GetPersonalProfile(Account.UserProfileUDF);
AccountPersonalProfile.SignedDeviceProfile = DevProfile;
var PasswordEntry = AccountPersonalProfile.GetPasswordProfile();
var SignedPasswordProfile2 =
Mesh.GetProfile(PasswordEntry.Identifier) as SignedProfile;
var AccountPasswordProfile = PasswordProfile.Get(
SignedPasswordProfile2, AccountPersonalProfile);
AccountPasswordProfile.Add(PWDSite, PWDUser, PWDPassword);
// Implement the second way to do things, cleaner.
//var AccountSignedPassword = new SignedPasswordProfile(AccountPasswordProfile);
var AccountSignedPassword = AccountPasswordProfile.Signed;
Mesh.UpdateProfile(AccountSignedPassword);
// Now add a new device
var DevProfile2 = new SignedDeviceProfile(Device2, Device2Description);
// Post Connect Request
Mesh.GetChainToken();
var ConnectionRequest = new ConnectionRequest(Account, DevProfile2);
Mesh.PostConnectionRequest(ConnectionRequest.Signed,
Account.UniqueID);
// Get list of pending requests
Mesh.GetPendingRequests(Account.AccountID);
// Accept pending request
var ConnectionResult = new ConnectionResult();
ConnectionResult.Result = "Accept";
ConnectionResult.Device = DevProfile2;
var SignedConnectionResult = new SignedConnectionResult(ConnectionResult,
AccountPersonalProfile.GetAdministrationKey());
Mesh.CloseConnectionRequest(Account.AccountID, SignedConnectionResult);
// Pull password data
Mesh.GetRequestStatus(Account.AccountID, DevProfile2.UDF);
// decrypt using device2 credential
var SignedPasswordProfile3 =
Mesh.GetProfile(PasswordEntry.Identifier) as SignedProfile;
var PP3 = PasswordProfile.Get(SignedPasswordProfile3, AccountPersonalProfile);
var PasswordPrivate = PP3.Private;
}