mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-06 02:55:49 +03:00
LibTLS: Implement build_alert()
This commit is contained in:
parent
adab43987d
commit
0da07c284e
Notes:
sideshowbarker
2024-07-19 07:03:55 +09:00
Author: https://github.com/alimpfard Commit: https://github.com/SerenityOS/serenity/commit/0da07c284e6 Pull-request: https://github.com/SerenityOS/serenity/pull/1661 Reviewed-by: https://github.com/Dexesttp Reviewed-by: https://github.com/awesomekling Reviewed-by: https://github.com/itamar8910
@ -279,8 +279,11 @@ void TLSv12::build_random(PacketBuilder& builder)
|
||||
ssize_t TLSv12::handle_payload(const ByteBuffer& vbuffer)
|
||||
{
|
||||
if (m_context.connection_status == ConnectionStatus::Established) {
|
||||
auto packet = build_alert(false, (u8)AlertDescription::NoRenegotiation);
|
||||
write_packet(packet);
|
||||
dbg() << "Renegotiation attempt ignored";
|
||||
// FIXME: We should properly say "NoRenegotiation", but that causes a handshake failure
|
||||
// so we just roll with it and pretend that we _did_ renegotiate
|
||||
// This will cause issues when we decide to have long-lasting connections, but
|
||||
// we do not have those at the moment :^)
|
||||
return 1;
|
||||
}
|
||||
auto buffer = vbuffer;
|
||||
@ -530,6 +533,9 @@ ssize_t TLSv12::handle_payload(const ByteBuffer& vbuffer)
|
||||
write_packet(packet);
|
||||
break;
|
||||
}
|
||||
case Error::NeedMoreData:
|
||||
// Ignore this, as it's not an "error"
|
||||
break;
|
||||
default:
|
||||
dbg() << "Unknown TLS::Error with value " << payload_res;
|
||||
ASSERT_NOT_REACHED();
|
||||
|
@ -129,10 +129,17 @@ ByteBuffer TLSv12::build_hello()
|
||||
|
||||
ByteBuffer TLSv12::build_alert(bool critical, u8 code)
|
||||
{
|
||||
dbg() << "FIXME: build_alert";
|
||||
(void)critical;
|
||||
(void)code;
|
||||
return {};
|
||||
PacketBuilder builder(MessageType::Alert, (u16)m_context.version);
|
||||
builder.append((u8)(critical ? AlertLevel::Critical : AlertLevel::Warning));
|
||||
builder.append(code);
|
||||
|
||||
if (critical)
|
||||
m_context.critical_error = code;
|
||||
|
||||
auto packet = builder.build();
|
||||
update_packet(packet);
|
||||
|
||||
return packet;
|
||||
}
|
||||
|
||||
ByteBuffer TLSv12::build_finished()
|
||||
|
Loading…
Reference in New Issue
Block a user