private void HandleAppliction(Record record) { foreach (var b in record.Data) { applicationBuffer.Enqueue(b); } }
public void WriteApplicationData(byte[] buffer, int offset, int count) { SecurityBufferAssert.AssertBuffer(buffer, offset, count); var data = new byte[count]; Array.Copy(buffer, offset, data, 0, count); var record = new Record(RecordType.Application, state.Version, data); state.RecordWriter.WriteRecord(record); }
private void HandleRecord(Record record) { switch (record.Type) { case RecordType.Handshake: HandleHandshake(record); break; case RecordType.ChangeCipherSpec: HandleChangeCipherSpec(record); break; case RecordType.Application: HandleAppliction(record); break; default: throw new NotImplementedException(); } }
public void WriteRecord(Record record) { state.RecordStrategy.Write(record.Type, record.Version, record.Data); }
private void HandleHandshake(Record record) { var handshakeReader = new HandshakeReader(state); var handshakeWriter = new HandshakeWriter(state); var message = handshakeReader.Read(record); switch (message.Type) { case HandshakeType.ClientHello: state.HandleClientHello((ClientHelloMessage)message); var serverHellos = state.GenerateServerHello(); foreach (var hello in serverHellos) { handshakeWriter.Write(hello); } state.SentServerHello(); break; case HandshakeType.ClientKeyExchange: state.HandleClientKeyExchange((ClientKeyExchangeMessage)message); break; case HandshakeType.Finished: HandleHandshakeFinished(message, handshakeWriter); break; default: throw new NotImplementedException(); } }
private void HandleChangeCipherSpec(Record record) { SecurityAssert.SAssert(record.Length == 1); SecurityAssert.SAssert(record.Data[0] == 1); state.ReceivedChangeCipherSpec(); }