Coverage Report

Created: 2025-08-28 06:26

/src/serenity/Userland/Libraries/LibCrypto/Curves/EllipticCurve.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2022, Michiel Visser <opensource@webmichiel.nl>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <AK/ByteBuffer.h>
10
11
namespace Crypto::Curves {
12
13
class EllipticCurve {
14
public:
15
    virtual size_t key_size() = 0;
16
    virtual ErrorOr<ByteBuffer> generate_private_key() = 0;
17
    virtual ErrorOr<ByteBuffer> generate_public_key(ReadonlyBytes a) = 0;
18
    virtual ErrorOr<ByteBuffer> compute_coordinate(ReadonlyBytes scalar_bytes, ReadonlyBytes point_bytes) = 0;
19
    virtual ErrorOr<ByteBuffer> derive_premaster_key(ReadonlyBytes shared_point) = 0;
20
21
0
    virtual ~EllipticCurve() = default;
22
};
23
24
}