79 static
DL_Group from_PEM(std::string_view pem);
85 return DL_Group::from_PEM(pem);
135 template <
typename Alloc>
137 DL_Group(ber.data(), ber.size(), format) {}
143 const BigInt& get_p()
const;
149 const BigInt& get_q()
const;
155 const BigInt& get_g()
const;
171 bool verify_public_element(
const BigInt& y)
const;
179 bool verify_private_element(
const BigInt& x)
const;
263 return power_g_p(x, x.bits());
273 BigInt power_g_p(
const BigInt& x,
size_t max_x_bits)
const;
303 std::shared_ptr<const Montgomery_Params> monty_params_p()
const;
309 size_t p_bits()
const;
315 size_t p_bytes()
const;
322 size_t q_bits()
const;
329 size_t q_bytes()
const;
346 size_t exponent_bits()
const;
354 size_t estimated_strength()
const;
374 static std::shared_ptr<DL_Group_Data> DL_group_info(std::string_view
name);
382 DL_Group(std::shared_ptr<DL_Group_Data> data) : m_data(std::move(data)) {}
384 static std::shared_ptr<DL_Group_Data> load_DL_group_info(
const char* p_str,
const char* q_str,
const char* g_str);
386 static std::shared_ptr<DL_Group_Data> load_DL_group_info(
const char* p_str,
const char* g_str);
388 static std::shared_ptr<DL_Group_Data> BER_decode_DL_group(
const uint8_t data[],
390 DL_Group_Format format,
391 DL_Group_Source source);
393 const DL_Group_Data& data()
const;
394 std::shared_ptr<DL_Group_Data> m_data;