Пример #1
0
        private async Task ProcessFile(string file)
        {
            var shortFile = System.IO.Path.GetFileName(file);

            if (!string.IsNullOrEmpty(shortFile) && shortFile.Length > 35)
            {
                shortFile = shortFile.Substring(0, 32) + "...";
            }

            var prg = new Progress <StreamCryptorTaskAsyncProgress>();

            prg.ProgressChanged += (s, e) =>
            {
                status.Text = string.Format("{0}: {1}%", shortFile, e.ProgressPercentage);
            };

            try
            {
                Enabled = false;

                await MessageCrypto.EncryptFile(file, toId.Text, prg);
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("Unable to encrypt message.\r\nError: '{0}'", ex.Message),
                                "CurveLock Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #2
0
        public void DecryptMessageTest()
        {
            var message    = Base58Check.Base58CheckEncoding.Decode("1AtPS411ipfcRmvBe1hoSvAbJpNfpvpzKrQHTuK8jw9WTGf69FM7kmkDxhf9nFpfG4dbEgrxYMuyyR3x4LM8LbscDx3x5mQWmGL8cDCShJKFBeEqN688QfhGNVVTsKqWNUJ");
            var privateKey = Sodium.Utilities.HexToBinary("4ba8e0b41fc07b5a1d4e0be0a4b464f6f2673a3854f967b5c31102b15683a195");
            var key        = PublicKeyBox.GenerateKeyPair(privateKey);
            var expected   = Encoding.UTF8.GetBytes("bob");
            var actual     = MessageCrypto.DecryptMessage(message, key);

            CollectionAssert.AreEqual(expected, actual);
        }
Пример #3
0
        public void EncryptMessageTest()
        {
            var          message    = Encoding.UTF8.GetBytes("bob");
            const string TO_ID      = "Lqm2Foa9keELvGf8cYHJB3CRzEgPLuxJnBdtbZRbhuGmx3dhQB";
            var          expected   = Encoding.UTF8.GetBytes("bob");
            var          encrypted  = MessageCrypto.EncryptMessage(message, TO_ID);
            var          privateKey = Sodium.Utilities.HexToBinary("4ba8e0b41fc07b5a1d4e0be0a4b464f6f2673a3854f967b5c31102b15683a195");
            var          key        = PublicKeyBox.GenerateKeyPair(privateKey);

            var actual = MessageCrypto.DecryptMessage(encrypted, key);

            CollectionAssert.AreEqual(expected, actual);
        }
Пример #4
0
        private void DecryptLinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (message.Text.Length > 0)
            {
                byte[] decoded;
                decrypt.Enabled = false;

                try
                {
                    Enabled = false;

                    decoded = Base58Check.Base58CheckEncoding.Decode(message.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Unable to decode message. Please verify that it is correct.",
                                    "CurveLock Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    //bail out, nothing we can do here
                    return;
                }
                finally
                {
                    Enabled = true;
                }

                try
                {
                    Enabled = false;

                    message.Text = Encoding.UTF8.GetString(MessageCrypto.DecryptMessage(decoded, Common.KeyPair));
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        string.Format("Unable to decrypt message. Please verify that it is correct.\r\nError: '{0}'", ex.Message),
                        "CurveLock Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    Enabled = true;
                }
            }
        }
Пример #5
0
        private void EncryptLinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (message.Text.Length > 0)
            {
                encrypt.Enabled = false;

                try
                {
                    Enabled = false;

                    message.Text = Base58Check.Base58CheckEncoding.Encode(
                        MessageCrypto.EncryptMessage(Encoding.UTF8.GetBytes(message.Text), toId.Text));
                }
                catch (Exception ex)
                {
                    MessageBox.Show(string.Format("Unable to encrypt message.\r\nError: '{0}'", ex.Message),
                                    "CurveLock Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    Enabled = true;
                }
            }
        }