/* * Copyright (c) 2022, stelar7 * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Crypto::Curves { class X25519 { public: size_t key_size() { return 32; } ErrorOr generate_private_key(); ErrorOr generate_public_key(ReadonlyBytes a); ErrorOr compute_coordinate(ReadonlyBytes a, ReadonlyBytes b); ErrorOr derive_premaster_key(ReadonlyBytes shared_point); }; }