Ejemplo n.º 1
0
 private void HandleAppliction(Record record)
 {
     foreach (var b in record.Data)
     {
         applicationBuffer.Enqueue(b);
     }
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 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();
     }
 }
Ejemplo n.º 4
0
 public void WriteRecord(Record record)
 {
     state.RecordStrategy.Write(record.Type, record.Version, record.Data);
 }
Ejemplo n.º 5
0
        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();
            }
        }
Ejemplo n.º 6
0
        private void HandleChangeCipherSpec(Record record)
        {
            SecurityAssert.SAssert(record.Length == 1);
            SecurityAssert.SAssert(record.Data[0] == 1);

            state.ReceivedChangeCipherSpec();
        }