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); }
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); }