10#include <botan/ecc_key.h>
11#include <botan/x509_key.h>
12#include <botan/numthry.h>
13#include <botan/der_enc.h>
14#include <botan/ber_dec.h>
15#include <botan/secmem.h>
16#include <botan/point_gfp.h>
17#include <botan/internal/assert.h>
64 "EC-key object whose corresponding domain "
65 "parameters are without oid");
73 throw Invalid_State(
"EC_PrivateKey::private_value - uninitialized");
96 "ECC private key was not on the curve");
103 .
encode(
static_cast<size_t>(1))
118 .decode_and_check<
size_t>(1,
"Unknown version code for ECC key")
125 "Loaded ECC private key not on the curve");
#define BOTAN_ASSERT(expr, msg)
SecureVector< byte > parameters
BER_Decoder(DataSource &)
static SecureVector< byte > encode_1363(const BigInt &n, size_t bytes)
static BigInt random_integer(RandomNumberGenerator &rng, const BigInt &min, const BigInt &max)
DER_Encoder & start_cons(ASN1_Tag type_tag, ASN1_Tag class_tag=UNIVERSAL)
SecureVector< byte > get_contents()
DER_Encoder & encode(bool b)
std::string get_oid() const
const PointGFp & get_base_point() const
EC_Group(const CurveGFp &curve, const PointGFp &base_point, const BigInt &order, const BigInt &cofactor)
MemoryVector< byte > pkcs8_private_key() const
const BigInt & private_value() const
const EC_Group & domain() const
void set_parameter_encoding(EC_Group_Encoding enc)
MemoryVector< byte > x509_subject_public_key() const
MemoryVector< byte > DER_domain() const
EC_Group_Encoding domain_encoding
bool check_key(RandomNumberGenerator &rng, bool strong) const
AlgorithmIdentifier algorithm_identifier() const
const PointGFp & public_point() const
bool on_the_curve() const
virtual OID get_oid() const
std::invalid_argument Invalid_Argument
PointGFp OS2ECP(const byte data[], size_t data_len, const CurveGFp &curve)
@ EC_DOMPAR_ENC_IMPLICITCA
SecureVector< byte > EC2OSP(const PointGFp &point, byte format)
Invalid_State(const std::string &err)