Esempio n. 1
0
        static void Main(string[] args)
        {
            // setup
            var rng        = new RNGCryptoServiceProvider();
            var sslProtect = new OpenSSLProtectData(rng);
            var sshProtect = new SSHProtectData(rng, sslProtect);

            // generate SSH keypair
            var keyPair = OpenSSHKeygen.GenerateKeyPair();

            // generate single 32 byte key for aes
            var symmetricKey = new byte[32];

            rng.GetNonZeroBytes(symmetricKey);

            // some random json string
            var plainText = "{\"id\":\"some_id\",\"debugging\":false,\"redis\":{\"host\":\"localhost\",\"port\":6379,\"password\":\"passy\",\"db\":0,\"channelPrefix\":null},\"http\":{\"port\":8080},\"ws\":{\"keepalive\":true,\"keepaliveInterval\":30000},\"clientId\":\"some_id\",\"clientSecret\":\"some_secret\"}";

            // flip this to use the same symmetricKey (generated above)
            // or generate a new symmetric key every time
            // when the same key is used there doesn't seem to be any problems
            bool useSameKey = false;

            // loop multiple encryptions and count failures
            var failures = 0;

            for (var i = 0; i < 50; i++)
            {
                if (!EncryptDecrypt(sshProtect, keyPair, plainText, useSameKey ? symmetricKey : null))
                {
                    failures++;
                }
            }
            Console.WriteLine($"Total Failures: {failures}");
        }
Esempio n. 2
0
 public SSHProtectData(Encoding encoding, RNGCryptoServiceProvider rngCrypto, OpenSSLProtectData encryption)
 {
     m_Encoding   = encoding;
     m_RngCrypto  = rngCrypto;
     m_Encryption = encryption;
 }
Esempio n. 3
0
 public SSHProtectData(RNGCryptoServiceProvider rngCrypto, OpenSSLProtectData encryption)
     : this(DEFAULT_ENCODING, rngCrypto, encryption)
 {
 }