10#include <botan/ec_group.h>
11#include <botan/ber_dec.h>
12#include <botan/der_enc.h>
13#include <botan/libstate.h>
14#include <botan/oids.h>
71 .decode_and_check<
size_t>(1,
"Unknown ECC param version code")
73 .decode_and_check(
OID(
"1.2.840.10045.1.1"),
74 "Only prime ECC fields supported")
78 .decode_octet_string_bigint(a)
79 .decode_octet_string_bigint(b)
88 base_point =
OS2ECP(sv_base_point, curve);
91 throw Decoding_Error(
"Unexpected tag while decoding ECC domain params");
99 const size_t ecpVers1 = 1;
100 OID curve_type(
"1.2.840.10045.1.1");
102 const size_t p_bytes = curve.get_p().bytes();
BER_Object get_next_object()
BER_Decoder(DataSource &)
static SecureVector< byte > encode_1363(const BigInt &n, size_t bytes)
DER_Encoder & start_cons(ASN1_Tag type_tag, ASN1_Tag class_tag=UNIVERSAL)
DER_Encoder & encode_null()
SecureVector< byte > get_contents()
DER_Encoder & encode(bool b)
std::string get_oid() const
std::string PEM_encode() const
SecureVector< byte > DER_encode(EC_Group_Encoding form) const
EC_Group(const CurveGFp &curve, const PointGFp &base_point, const BigInt &order, const BigInt &cofactor)
std::string get(const std::string §ion, const std::string &key) const
std::string as_string() const
OID(const std::string &str="")
std::string lookup(const OID &oid)
std::string encode(const byte der[], size_t length, const std::string &label, size_t width)
SecureVector< byte > decode_check_label(DataSource &source, const std::string &label_want)
PointGFp OS2ECP(const byte data[], size_t data_len, const CurveGFp &curve)
Library_State & global_state()
@ EC_DOMPAR_ENC_IMPLICITCA
SecureVector< byte > EC2OSP(const PointGFp &point, byte format)
Decoding_Error(const std::string &name)
Internal_Error(const std::string &err)
Lookup_Error(const std::string &err)