/* * Copyright (c) 2024, Altomani Gianluca * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Crypto::Curves { class Ed448 { public: constexpr size_t key_size() const { return 57; } constexpr size_t signature_size() const { return 114; } ErrorOr generate_private_key(); ErrorOr generate_public_key(ReadonlyBytes private_key); ErrorOr sign(ReadonlyBytes private_key, ReadonlyBytes message, ReadonlyBytes context = {}); ErrorOr verify(ReadonlyBytes public_key, ReadonlyBytes signature, ReadonlyBytes message, ReadonlyBytes context = {}); }; }