Botan 3.9.0
Crypto and TLS for C&
pcurves_instance.h
Go to the documentation of this file.
1/*
2* This file was automatically generated by ./src/scripts/dev_tools/gen_ec_groups.py on 2025-05-01
3*
4* Botan is released under the Simplified BSD License (see license.txt)
5*/
6
7#ifndef BOTAN_PCURVES_INSTANCE_H_
8#define BOTAN_PCURVES_INSTANCE_H_
9
10#include <botan/build.h>
11#include <memory>
12
13namespace Botan {
14
15class BigInt;
16
17}
18
19namespace Botan::PCurve {
20
21class PrimeOrderCurve;
22
23class PCurveInstance final {
24 public:
25#if defined(BOTAN_HAS_PCURVES_SECP256R1)
26 static std::shared_ptr<const PrimeOrderCurve> secp256r1();
27#endif
28
29#if defined(BOTAN_HAS_PCURVES_SECP384R1)
30 static std::shared_ptr<const PrimeOrderCurve> secp384r1();
31#endif
32
33#if defined(BOTAN_HAS_PCURVES_SECP521R1)
34 static std::shared_ptr<const PrimeOrderCurve> secp521r1();
35#endif
36
37#if defined(BOTAN_HAS_PCURVES_BRAINPOOL256R1)
38 static std::shared_ptr<const PrimeOrderCurve> brainpool256r1();
39#endif
40
41#if defined(BOTAN_HAS_PCURVES_BRAINPOOL384R1)
42 static std::shared_ptr<const PrimeOrderCurve> brainpool384r1();
43#endif
44
45#if defined(BOTAN_HAS_PCURVES_BRAINPOOL512R1)
46 static std::shared_ptr<const PrimeOrderCurve> brainpool512r1();
47#endif
48
49#if defined(BOTAN_HAS_PCURVES_FRP256V1)
50 static std::shared_ptr<const PrimeOrderCurve> frp256v1();
51#endif
52
53#if defined(BOTAN_HAS_PCURVES_SECP192R1)
54 static std::shared_ptr<const PrimeOrderCurve> secp192r1();
55#endif
56
57#if defined(BOTAN_HAS_PCURVES_SECP224R1)
58 static std::shared_ptr<const PrimeOrderCurve> secp224r1();
59#endif
60
61#if defined(BOTAN_HAS_PCURVES_SECP256K1)
62 static std::shared_ptr<const PrimeOrderCurve> secp256k1();
63#endif
64
65#if defined(BOTAN_HAS_PCURVES_SM2P256V1)
66 static std::shared_ptr<const PrimeOrderCurve> sm2p256v1();
67#endif
68
69#if defined(BOTAN_HAS_PCURVES_NUMSP512D1)
70 static std::shared_ptr<const PrimeOrderCurve> numsp512d1();
71#endif
72
73#if defined(BOTAN_HAS_PCURVES_GENERIC)
74 static std::shared_ptr<const PrimeOrderCurve> from_params(const BigInt& p,
75 const BigInt& a,
76 const BigInt& b,
77 const BigInt& base_x,
78 const BigInt& base_y,
79 const BigInt& order);
80#endif
81};
82
83} // namespace Botan::PCurve
84
85#endif