/*
* (C) 2024 Jack Lloyd
*
* Botan is released under the Simplified BSD License (see license.txt)
*/

#include <botan/internal/pcurves_instance.h>

#include <botan/internal/pcurves_wrap.h>

namespace Botan::PCurve {

namespace {

namespace brainpool256r1 {

// clang-format off

class Params final : public EllipticCurveParameters<
   "A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377",
   "7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9",
   "26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6",
   "A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7",
   "8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262",
   "547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997",
   -2> {
};

// clang-format on

class Curve final : public EllipticCurve<Params> {};

}  // namespace brainpool256r1

}  // namespace

std::shared_ptr<const PrimeOrderCurve> PCurveInstance::brainpool256r1() {
   return PrimeOrderCurveImpl<brainpool256r1::Curve>::instance();
}

}  // namespace Botan::PCurve
