Botan 3.12.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 2026-04-24
3* All manual changes will be lost. Edit the script instead.
4*
5* Botan is released under the Simplified BSD License (see license.txt)
6*/
7
8#ifndef BOTAN_PCURVES_INSTANCE_H_
9#define BOTAN_PCURVES_INSTANCE_H_
10
11#include <botan/build.h>
12#include <memory>
13
14namespace Botan {
15
16class BigInt;
17
18}
19
20namespace Botan::PCurve {
21
22class PrimeOrderCurve;
23
24class PCurveInstance final {
25 public:
26#if defined(BOTAN_HAS_PCURVES_SECP256R1)
27 static std::shared_ptr<const PrimeOrderCurve> secp256r1();
28#endif
29
30#if defined(BOTAN_HAS_PCURVES_SECP384R1)
31 static std::shared_ptr<const PrimeOrderCurve> secp384r1();
32#endif
33
34#if defined(BOTAN_HAS_PCURVES_SECP521R1)
35 static std::shared_ptr<const PrimeOrderCurve> secp521r1();
36#endif
37
38#if defined(BOTAN_HAS_PCURVES_BRAINPOOL256R1)
39 static std::shared_ptr<const PrimeOrderCurve> brainpool256r1();
40#endif
41
42#if defined(BOTAN_HAS_PCURVES_BRAINPOOL384R1)
43 static std::shared_ptr<const PrimeOrderCurve> brainpool384r1();
44#endif
45
46#if defined(BOTAN_HAS_PCURVES_BRAINPOOL512R1)
47 static std::shared_ptr<const PrimeOrderCurve> brainpool512r1();
48#endif
49
50#if defined(BOTAN_HAS_PCURVES_FRP256V1)
51 static std::shared_ptr<const PrimeOrderCurve> frp256v1();
52#endif
53
54#if defined(BOTAN_HAS_PCURVES_SECP192R1)
55 static std::shared_ptr<const PrimeOrderCurve> secp192r1();
56#endif
57
58#if defined(BOTAN_HAS_PCURVES_SECP224R1)
59 static std::shared_ptr<const PrimeOrderCurve> secp224r1();
60#endif
61
62#if defined(BOTAN_HAS_PCURVES_SECP256K1)
63 static std::shared_ptr<const PrimeOrderCurve> secp256k1();
64#endif
65
66#if defined(BOTAN_HAS_PCURVES_SM2P256V1)
67 static std::shared_ptr<const PrimeOrderCurve> sm2p256v1();
68#endif
69
70#if defined(BOTAN_HAS_PCURVES_NUMSP512D1)
71 static std::shared_ptr<const PrimeOrderCurve> numsp512d1();
72#endif
73
74#if defined(BOTAN_HAS_PCURVES_GENERIC)
75 static std::shared_ptr<const PrimeOrderCurve> from_params(const BigInt& p,
76 const BigInt& a,
77 const BigInt& b,
78 const BigInt& base_x,
79 const BigInt& base_y,
80 const BigInt& order);
81#endif
82};
83
84} // namespace Botan::PCurve
85
86#endif