コード例 #1
0
 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;
     });
 }
コード例 #2
0
        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);
        }
コード例 #3
0
 /// <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);
 }