1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 06:47:35 +00:00

LibTLS: Add support for curve x448

This commit is contained in:
stelar7 2022-02-18 17:43:50 +01:00 committed by Ali Mohammad Pur
parent 0df7ad7493
commit 125a43e203
3 changed files with 78 additions and 16 deletions

View file

@ -242,7 +242,9 @@ struct Options {
{ HashAlgorithm::SHA384, SignatureAlgorithm::RSA },
{ HashAlgorithm::SHA256, SignatureAlgorithm::RSA },
{ HashAlgorithm::SHA1, SignatureAlgorithm::RSA });
OPTION_WITH_DEFAULTS(Vector<NamedCurve>, elliptic_curves, NamedCurve::x25519)
OPTION_WITH_DEFAULTS(Vector<NamedCurve>, elliptic_curves,
NamedCurve::x25519,
NamedCurve::x448)
OPTION_WITH_DEFAULTS(Vector<ECPointFormat>, supported_ec_point_formats, ECPointFormat::Uncompressed)
OPTION_WITH_DEFAULTS(bool, use_sni, true)
@ -331,6 +333,8 @@ struct Context {
ByteBuffer g;
ByteBuffer Ys;
} server_diffie_hellman_params;
NamedCurve server_curve_choice;
};
class TLSv12 final : public Core::Stream::Socket {
@ -461,6 +465,9 @@ private:
void build_dhe_rsa_pre_master_secret(PacketBuilder&);
void build_ecdhe_rsa_pre_master_secret(PacketBuilder&);
static ErrorOr<ByteBuffer> named_curve_multiply(NamedCurve curve, ReadonlyBytes a, ReadonlyBytes b);
static ErrorOr<ByteBuffer> named_curve_generator_point(NamedCurve curve);
ErrorOr<bool> flush();
void write_into_socket();
ErrorOr<void> read_from_socket();