Botan 3.12.0
Crypto and TLS for C&
pcurves.cpp
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#include <botan/internal/pcurves.h>
9
10#include <botan/assert.h>
11#include <botan/internal/mem_utils.h>
12#include <botan/internal/pcurves_instance.h>
13
14namespace Botan::PCurve {
15
17 secure_zeroize_buffer(m_value.data(), m_value.size() * sizeof(word));
18}
19
20//static
21std::shared_ptr<const PrimeOrderCurve> PrimeOrderCurve::from_params(
22 const BigInt& p, const BigInt& a, const BigInt& b, const BigInt& base_x, const BigInt& base_y, const BigInt& order) {
23#if defined(BOTAN_HAS_PCURVES_GENERIC)
24 return PCurveInstance::from_params(p, a, b, base_x, base_y, order);
25#endif
26
27 BOTAN_UNUSED(p, a, b, base_x, base_y, order);
28 return {};
29}
30
31//static
32std::shared_ptr<const PrimeOrderCurve> PrimeOrderCurve::for_named_curve(std::string_view name) {
33#if defined(BOTAN_HAS_PCURVES_SECP256R1)
34 if(name == "secp256r1") {
35 return PCurveInstance::secp256r1();
36 }
37#endif
38
39#if defined(BOTAN_HAS_PCURVES_SECP384R1)
40 if(name == "secp384r1") {
41 return PCurveInstance::secp384r1();
42 }
43#endif
44
45#if defined(BOTAN_HAS_PCURVES_SECP521R1)
46 if(name == "secp521r1") {
47 return PCurveInstance::secp521r1();
48 }
49#endif
50
51#if defined(BOTAN_HAS_PCURVES_BRAINPOOL256R1)
52 if(name == "brainpool256r1") {
53 return PCurveInstance::brainpool256r1();
54 }
55#endif
56
57#if defined(BOTAN_HAS_PCURVES_BRAINPOOL384R1)
58 if(name == "brainpool384r1") {
59 return PCurveInstance::brainpool384r1();
60 }
61#endif
62
63#if defined(BOTAN_HAS_PCURVES_BRAINPOOL512R1)
64 if(name == "brainpool512r1") {
65 return PCurveInstance::brainpool512r1();
66 }
67#endif
68
69#if defined(BOTAN_HAS_PCURVES_FRP256V1)
70 if(name == "frp256v1") {
71 return PCurveInstance::frp256v1();
72 }
73#endif
74
75#if defined(BOTAN_HAS_PCURVES_SECP192R1)
76 if(name == "secp192r1") {
77 return PCurveInstance::secp192r1();
78 }
79#endif
80
81#if defined(BOTAN_HAS_PCURVES_SECP224R1)
82 if(name == "secp224r1") {
83 return PCurveInstance::secp224r1();
84 }
85#endif
86
87#if defined(BOTAN_HAS_PCURVES_SECP256K1)
88 if(name == "secp256k1") {
89 return PCurveInstance::secp256k1();
90 }
91#endif
92
93#if defined(BOTAN_HAS_PCURVES_SM2P256V1)
94 if(name == "sm2p256v1") {
95 return PCurveInstance::sm2p256v1();
96 }
97#endif
98
99#if defined(BOTAN_HAS_PCURVES_NUMSP512D1)
100 if(name == "numsp512d1") {
101 return PCurveInstance::numsp512d1();
102 }
103#endif
104
105 BOTAN_UNUSED(name);
106 return {};
107}
108
109} // namespace Botan::PCurve
#define BOTAN_UNUSED
Definition assert.h:144
static std::shared_ptr< const PrimeOrderCurve > from_params(const BigInt &p, const BigInt &a, const BigInt &b, const BigInt &base_x, const BigInt &base_y, const BigInt &order)
Definition pcurves.cpp:21
static std::shared_ptr< const PrimeOrderCurve > for_named_curve(std::string_view name)
Definition pcurves.cpp:32
void secure_zeroize_buffer(void *ptr, size_t n)
Definition mem_utils.cpp:29
std::conditional_t< HasNative64BitRegisters, std::uint64_t, uint32_t > word
Definition types.h:119