Здравствуйте. Прошу мне помочь, что дальше делать с этим сообщением (HEX)
1400000c9fb6a2c4451db30174dfcdfdf645f9b8241c63b65c56d13a55ca5686dc52ebd10b0b0b0b0b0b0b0b0b0b0b0b
Я использую CipherSuite: TLS_RSA_WITH_AES_128_CBC_SHA
0x2f
.
Я получил master secret и key exchange верно, поскольку я расшифровал это сообщение. Ниже отрывок кода:
byte[] CKE_Length = Reader.ReadBytes(3); //ClientKey Exchange byte[] CKE_pubkKeyLength = Reader.ReadBytes(2); //ClientKey Exchange byte[] CKE_pubkKey = Reader.ReadBytes(256); //ClientKey Exchange byte[] pre_master_secret = Program.PrivateKey.Decrypt(CKE_pubkKey, RSAEncryptionPadding.Pkcs1); byte[] master_secret = TlsUtilities.PRF_legacy(pre_master_secret, "master secret", ByteArray.Concat(ClientRandomBytes, ServerRandomBytes), 48); byte[] key_block = TlsUtilities.PRF_legacy(master_secret, "key expansion", ByteArray.Concat(ServerRandomBytes, ClientRandomBytes), 104); byte[] client_write_mac = new byte[20]; byte[] server_write_mac = new byte[20]; byte[] client_write_key = new byte[16]; byte[] server_write_key = new byte[16]; byte[] client_write_iv = new byte[16]; byte[] server_write_iv = new byte[16]; Buffer.BlockCopy(key_block, 0, client_write_mac, 0, 20); Buffer.BlockCopy(key_block, 20, server_write_mac, 0, 20); //40 Buffer.BlockCopy(key_block, 40, client_write_key, 0, 16); Buffer.BlockCopy(key_block, 56, server_write_key, 0, 16); //104 Buffer.BlockCopy(key_block, 72, client_write_iv, 0, 16); Buffer.BlockCopy(key_block, 88, server_write_iv, 0, 16);