mirror of
https://github.com/matrix-construct/construct
synced 2024-10-05 15:18:52 +02:00
ircd:Ⓜ️ Stringify request verification into tls buffer.
This commit is contained in:
parent
b9bb4b4a45
commit
a2ecd6339c
1 changed files with 23 additions and 2 deletions
|
@ -194,9 +194,30 @@ ircd::m::request::verify(const ed25519::pk &pk,
|
||||||
const ed25519::sig &sig)
|
const ed25519::sig &sig)
|
||||||
const
|
const
|
||||||
{
|
{
|
||||||
const json::strung object
|
static const size_t request_max
|
||||||
{
|
{
|
||||||
*this
|
1_MiB
|
||||||
|
};
|
||||||
|
|
||||||
|
const size_t request_size
|
||||||
|
{
|
||||||
|
json::serialized(*this)
|
||||||
|
};
|
||||||
|
|
||||||
|
const ctx::critical_assertion ca;
|
||||||
|
thread_local char buf[request_max];
|
||||||
|
if(unlikely(request_size > sizeof(buf)))
|
||||||
|
throw m::error
|
||||||
|
{
|
||||||
|
http::PAYLOAD_TOO_LARGE, "M_REQUEST_TOO_LARGE",
|
||||||
|
"The request size %zu bytes exceeds maximum of %zu bytes",
|
||||||
|
request_size,
|
||||||
|
request_max
|
||||||
|
};
|
||||||
|
|
||||||
|
const json::object object
|
||||||
|
{
|
||||||
|
stringify(mutable_buffer{buf}, *this)
|
||||||
};
|
};
|
||||||
|
|
||||||
return verify(pk, sig, object);
|
return verify(pk, sig, object);
|
||||||
|
|
Loading…
Reference in a new issue