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