Exemple #1
0
        private static Route GenerateRoute(IList <NodeInfo> possibleNodes, int startSequenceId = 0, Route oldRoute = null)
        {
            var nodes = new RouteNode[3];
            var i     = 0;

            while (i < nodes.Length)
            {
                var nodeIndex = SodiumCore.GetRandomNumber(possibleNodes.Count);
                var node      = possibleNodes[nodeIndex];

                if (nodes.Any(n => n != null && n.Node.Id == node.Id))
                {
                    continue;
                }

                var keyPair = PublicKeyBox.GenerateKeyPair();

                nodes[i++] = new RouteNode
                {
                    EphemeralPublicKey = keyPair.PublicKey,
                    SymmetricKey       = GenerateSymmetricKey(node.PublicKey, null, keyPair.PublicKey, keyPair.PrivateKey),
                    Node = node
                };
            }

            return(new Route
            {
                StartSequenceId = startSequenceId,
                OldRoute = oldRoute,
                Nodes = nodes
            });
        }
Exemple #2
0
        private void GeneratePasswordButton_Click(object sender, RoutedEventArgs e)
        {
            string characters = "";
            string password   = "";

            if (settings.GetUseLowercase() == true)
            {
                characters += "abcdefghijklmnopqrstuvwxyz";
            }

            if (settings.GetUseUppercase() == true)
            {
                characters += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            }

            if (settings.GetUseNumbers() == true)
            {
                characters += "0123456789";
            }

            if (settings.GetUseSpecialchars() == true)
            {
                characters += settings.GetAllowedSpecialchars();
            }

            for (int i = 0; i < settings.GetDefaultPasswordlength(); i++)
            {
                int  random = SodiumCore.GetRandomNumber(characters.Length);
                char c      = characters[random];

                password += c;
            }

            GeneratedPasswordTextbox.Text = password;
        }
Exemple #3
0
        public static string[] AESEncryption(string key, string plainText)
        {
            var nonce       = SecretAead.GenerateNonce();
            var encodedKey  = Encoding.UTF8.GetBytes(key);
            var encodedData = SodiumCore.GetRandomBytes(SodiumCore.GetRandomNumber(1147483647));
            var cipherText  = SecretAead.Encrypt(Encoding.UTF8.GetBytes(plainText), nonce, encodedKey, encodedData);

            return(new[] { Encoding.UTF8.GetString(cipherText), Encoding.UTF8.GetString(nonce), Encoding.UTF8.GetString(encodedData) });
        }
        private static List <string> GetRandomWords(string[] wordlist, int length)
        {
            var words    = new List <string>();
            var textInfo = CultureInfo.CurrentCulture.TextInfo;

            for (int i = 0; i < length; i++)
            {
                int randomLine = SodiumCore.GetRandomNumber(wordlist.Length);
                words.Add(textInfo.ToTitleCase(wordlist[randomLine]));
            }
            return(words);
        }
        private static List <string> GetRandomWords(string[] wordlist, int length)
        {
            var words    = new List <string>();
            var textInfo = new CultureInfo("en-US", useUserOverride: false).TextInfo;

            for (int i = 0; i < length; i++)
            {
                int randomLine = SodiumCore.GetRandomNumber(wordlist.Length);
                words.Add(textInfo.ToTitleCase(wordlist[randomLine]));
            }
            return(words);
        }
        public void GetRandomNumbersTest()
        {
            var n1 = SodiumCore.GetRandomNumber(1600);
            var n2 = SodiumCore.GetRandomNumber(25550);
            var n3 = SodiumCore.GetRandomNumber(5);
            var n4 = SodiumCore.GetRandomNumber(2147483647);
            var n5 = SodiumCore.GetRandomNumber(0); //always 0

            Assert.IsNotNull(n1);
            Assert.IsNotNull(n2);
            Assert.IsNotNull(n3);
            Assert.IsNotNull(n4);
            Assert.IsNotNull(n5);

            Assert.Less(n1, 1600);
            Assert.Less(n2, 25550);
            Assert.Less(n3, 5);
            Assert.Less(n4, 2147483647);
            Assert.AreEqual(n5, 0);
        }
Exemple #7
0
        public static string GetRandomString(int length, StringFormat[] lst)
        {
            StringBuilder sb       = new StringBuilder();
            string        keyspace = "";

            if (lst.Any(x => x == StringFormat.Number))
            {
                keyspace = "0123456789";
            }

            if (lst.Any(x => x == StringFormat.Letter))
            {
                keyspace += "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            }
            else
            {
                if (lst.Any(x => x == StringFormat.Upper))
                {
                    keyspace += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                }
                if (lst.Any(x => x == StringFormat.Lower))
                {
                    keyspace += "abcdefghijklmnopqrstuvwxyz";
                }
            }

            if (lst.Any(x => x == StringFormat.Symbol))
            {
                keyspace += "~!@#$%^&*()_+`-={}|[]\\:\";'<>?,./";
            }

            for (int i = 0; i < length; i++)
            {
                sb.Append(keyspace[SodiumCore.GetRandomNumber(keyspace.Length)]);
            }
            return(sb.ToString());
        }
Exemple #8
0
 /// <summary>
 /// Random number.
 /// </summary>
 /// <returns>The numbers.</returns>
 /// <param name="n">N.</param>
 public static int RandomNumbers(int n)
 {
     Guard.Argument(n, nameof(n)).NotNegative();
     return(SodiumCore.GetRandomNumber(n));
 }
Exemple #9
0
 public DiffieHellman()
 {
     secretKey = SodiumCore.GetRandomBytes(SodiumCore.GetRandomNumber(1147483647));
 }
Exemple #10
0
        public static string randomString()
        {
            var randomBytes = SodiumCore.GetRandomBytes(SodiumCore.GetRandomNumber(1147483647));

            return(Encoding.UTF8.GetString(randomBytes));
        }
Exemple #11
0
 /// <summary>
 /// Random number.
 /// </summary>
 /// <returns>The numbers.</returns>
 /// <param name="n">N.</param>
 public static int RandomNumbers(int n)
 {
     return(SodiumCore.GetRandomNumber(n));
 }
 public static int RandomNumber(int n) => SodiumCore.GetRandomNumber(n);