示例#1
0
        private void HandleServerKeyExchange(ReadableBuffer messageBuffer)
        {
            HandshakeHash.HashData(messageBuffer);
            var parser = new ServerKeyExchangeParser(messageBuffer);

            _signatureScheme = parser.SignatureScheme;
            _certificate.CheckSignature(_cryptoProvider.HashProvider, _signatureScheme, parser.Signature, parser.Data);
            KeyExchange.SetPeerKey(parser.Key, _certificate, _signatureScheme);
        }
示例#2
0
 private Span<byte> HandleClientKeyExchange(ReadableBuffer messageBuffer)
 {
     var span = messageBuffer.ToSpan();
     HandshakeHash.HashData(span);
     span = span.Slice(HandshakeFraming.HeaderSize);
     KeyExchange.SetPeerKey(new BigEndianAdvancingSpan(span), _certificate, _signatureScheme);
     _secretSchedule.GenerateMasterSecret(dispose: true);
     _state = HandshakeState.WaitingForChangeCipherSpec;
     return span;
 }