public void LoadKeysAsync() { DataController.Instance.LoadObjectAsync <UserKeys> ("ownKeys", data => { Instance.ownKeys = data; EndToEndEncrypt.SetOwnKeys(data, null); }); DataController.Instance.LoadObjectAsync <UserKeys> ("oldOwnKeys", data => { Instance.oldOwnKeys = data; }); }
public override void Execute(CommandData data) { var args = data.GetAs <Arguments> (); byte[] publicIdentKey = args.publicIdentKey; byte[] publicPreKey = EndToEndEncrypt.SignByteOpen(args.publicPreKey, publicIdentKey); var encrypt = Instance.GetEndToEndEncrypt(args.id); // validate identity if (encrypt.PublicIdentKey != null && !encrypt.PublicIdentKey.SequenceEqual(publicIdentKey)) { throw new Exception("Incorrect ident key abording"); } encrypt.DeriveKeysClient(publicIdentKey, publicPreKey, args.oneTimeKey); Instance.SaveEndToEndEncrypt(encrypt); // send the setup headers Instance.SendSetup(args.id); }
/// <summary> /// Saves the end to end encrypt. /// </summary> /// <param name="encryptInstance">Encrypt instance.</param> private void SaveEndToEndEncrypt(EndToEndEncrypt encryptInstance) { DataController.Instance.SaveObject(encryptInstance.Identifier.ToString(), encryptInstance); }