internal void Receive(ICertificateProvider certProvider, INetState ns, HttpsReader reader) { RecordHandshake(reader.Buffer, reader.Length, !reader.IsDecrypted); EHandshake handshakeType = (EHandshake)reader.ReadByte(); int handshakeMsgLength = reader.Read24BitInt(); HttpsReader.VerifyLengthRemaining(reader, handshakeMsgLength, "Ssl handshake"); switch (handshakeType) { case EHandshake.ClientHello: ReceiveClientHello(certProvider, ns, reader); break; case EHandshake.ClientKeyExchange: ReceiveClientKeyExchange(certProvider, ns, reader); break; case EHandshake.Finished: ReceiveClientFinished(ns, reader); break; default: ns.Send(new HttpsSmsgAlert(ns.Https, 2, 10)); throw new HttpsException($"sent unknown handshake 0x{handshakeType:X}", reader); } }
public SDevice(SVendor vendor, SFunctionArray function, EHandshake handshake, byte address) { this.Vendor = new SVendor(vendor.Brand, vendor.Model, vendor.Version); this.Function = function; this.Handshake = handshake; this.Address = address; }