Esempio n. 1
0
        public void TestEncryptionDecryption()
        {
            var input = new byte[] { 0, 1, 5, 30, 244, 255, 193 };

            var rsa = new RSA();
            rsa.Init(new PrivateKeyParameter(Key));

            var encrypted = rsa.Encrypt(input);
            var decrypted = rsa.Decrypt(encrypted, 0, encrypted.Length);

            CollectionAssert.AreEqual(input, decrypted);
        }
Esempio n. 2
0
        public HandshakeMessage ReadClientKeyExchange(byte[] body)
        {
            var length = EndianBitConverter.Big.ToUInt16(body, 0);
            SecurityAssert.SAssert(body.Length == length + 2);

            var key = state.Certificates.GetPrivateKey(state.Certificate.SubjectPublicKey);
            var rsa = new RSA();
            rsa.Init(new PrivateKeyParameter(key));

            var preMasterSecret = rsa.Decrypt(body, 2, length);
            SecurityAssert.SAssert(preMasterSecret.Length == 48);
            SecurityAssert.SAssert(preMasterSecret[0] == state.Version.Major && preMasterSecret[1] == state.Version.Minor);

            return new ClientKeyExchangeMessage.RSA(preMasterSecret);
        }