Botan 3.5.0
Crypto and TLS for C&
pcurves_instance.h
Go to the documentation of this file.
1/*
2* (C) 2024 Jack Lloyd
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 <memory>
11
12namespace Botan::PCurve {
13
14class PrimeOrderCurve;
15
17 public:
18 /*
19 * All functions here are always defined, however if the cooresponding
20 * curve is not available at build time a default implementation is
21 * provided in pcurves_instance.cpp that returns a nullptr
22 */
23
24 static std::shared_ptr<const PrimeOrderCurve> secp256r1();
25
26 static std::shared_ptr<const PrimeOrderCurve> secp384r1();
27
28 static std::shared_ptr<const PrimeOrderCurve> secp521r1();
29
30 static std::shared_ptr<const PrimeOrderCurve> secp256k1();
31
32 static std::shared_ptr<const PrimeOrderCurve> brainpool256r1();
33
34 static std::shared_ptr<const PrimeOrderCurve> brainpool384r1();
35
36 static std::shared_ptr<const PrimeOrderCurve> brainpool512r1();
37
38 static std::shared_ptr<const PrimeOrderCurve> frp256v1();
39
40 static std::shared_ptr<const PrimeOrderCurve> sm2p256v1();
41};
42
43} // namespace Botan::PCurve
44
45#endif
static std::shared_ptr< const PrimeOrderCurve > secp521r1()
Definition pcurves.cpp:33
static std::shared_ptr< const PrimeOrderCurve > secp256k1()
Definition pcurves.cpp:40
static std::shared_ptr< const PrimeOrderCurve > secp384r1()
Definition pcurves.cpp:26
static std::shared_ptr< const PrimeOrderCurve > brainpool384r1()
Definition pcurves.cpp:54
static std::shared_ptr< const PrimeOrderCurve > brainpool512r1()
Definition pcurves.cpp:61
static std::shared_ptr< const PrimeOrderCurve > frp256v1()
Definition pcurves.cpp:68
static std::shared_ptr< const PrimeOrderCurve > brainpool256r1()
Definition pcurves.cpp:47
static std::shared_ptr< const PrimeOrderCurve > sm2p256v1()
Definition pcurves.cpp:75
static std::shared_ptr< const PrimeOrderCurve > secp256r1()
Definition pcurves.cpp:19
int(* final)(unsigned char *, CTX *)