public void Write_ResultBytesAreExpected() { //Arrange var expectedBytes = GetMessageHexString(); var buffer = new byte[TlsBuffer.MaxRecordSize]; var random = HandshakeRandom.Parse(GetBytesOfRandom()); var sessionId = SessionId.Parse(GetBytesOfSessionId()); //Act var cursor = new MemoryCursor(buffer); using (TlsRecord.StartWriting(cursor, RecordType.Handshake, ProtocolVersion.Tls12)) using (ServerHello.StartWriting(cursor, random, Cipher.TLS_AES_128_GCM_SHA256, sessionId)) { using (cursor.StartKeyShareWriting()) { using (KeyShareEntry.StartWriting(cursor, NamedGroup.X25519)) { GetBytesOfPublicKey().CopyTo(cursor); } } using (cursor.StartSupportedVersionWriting()) { ProtocolVersion.Tls13.WriteBytes(cursor); } } //Assert Assert.Equal(expectedBytes, Utils.ToHexString(cursor.PeekStart().ToArray()), true); }
public void Write_ResultBytesAreExpected() { //Arrange var expectedBytes = GetMessageHexString(); var buffer = new byte[TlsBuffer.MaxRecordSize]; var random = HandshakeRandom.Parse(GetBytesOfRandom()); var ciphers = new[] { Cipher.TLS_AES_128_GCM_SHA256, Cipher.TLS_AES_256_GCM_SHA384, Cipher.TLS_CHACHA20_POLY1305_SHA256 }; var sessionId = SessionId.Parse(GetBytesOfSessionId()); //Act var cursor = new MemoryCursor(buffer); using (TlsRecord.StartWriting(cursor, RecordType.Handshake, ProtocolVersion.Tls10)) using (ClientHello.StartWriting(cursor, random, ciphers, sessionId)) { using (cursor.StartServerNamesWriting()) { ServerNameEntry.WriteHostName(cursor, "example.ulfheim.net"); } using (cursor.StartSupportedGroupsWriting()) { NamedGroup.X25519.WriteBytes(cursor); NamedGroup.SECP256R1.WriteBytes(cursor); NamedGroup.SECP384R1.WriteBytes(cursor); } using (cursor.StartSignatureAlgorithmsWriting()) { SignatureScheme.ECDSA_SECP256R1_SHA256.WriteBytes(cursor); SignatureScheme.RSA_PSS_RSAE_SHA256.WriteBytes(cursor); SignatureScheme.RSA_PKCS1_SHA256.WriteBytes(cursor); SignatureScheme.ECDSA_SECP384R1_SHA384.WriteBytes(cursor); SignatureScheme.RSA_PSS_RSAE_SHA384.WriteBytes(cursor); SignatureScheme.RSA_PKCS1_SHA384.WriteBytes(cursor); SignatureScheme.RSA_PSS_RSAE_SHA512.WriteBytes(cursor); SignatureScheme.RSA_PKCS1_SHA512.WriteBytes(cursor); SignatureScheme.RSA_PKCS1_SHA1.WriteBytes(cursor); } using (cursor.StartKeySharesWriting()) { using (KeyShareEntry.StartWriting(cursor, NamedGroup.X25519)) { GetBytesOfPublicKey().CopyTo(cursor); } } using (cursor.StartPskKeyExchangeModesWriting()) { PskKeyExchangeMode.PskDheKe.WriteBytes(cursor); } using (cursor.StartSupportedVersionsWriting()) { ProtocolVersion.Tls13.WriteBytes(cursor); } } //Assert Assert.Equal(expectedBytes, Utils.ToHexString(cursor.PeekStart().ToArray()), true); }