예제 #1
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);
        }
예제 #2
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;
                }
            }
        }