|
| Point (const Wrapped &q=decaf_255_point_identity) DECAF_NOEXCEPT |
| Constructor sets to identity by default.
|
|
| Point (const Point &q) DECAF_NOEXCEPT |
| Copy constructor.
|
|
Point & | operator= (const Point &q) DECAF_NOEXCEPT |
| Assignment.
|
|
| ~Point () DECAF_NOEXCEPT |
| Destructor securely zeorizes the point.
|
|
| Point (Rng &rng, bool uniform=true) DECAF_NOEXCEPT |
| Construct from RNG.
|
|
| Point (const FixedBlock< SER_BYTES > &buffer, bool allow_identity=true) |
| Initialize from a fixed-length byte string. More...
|
|
decaf_error_t DECAF_WARN_UNUSED | decode (const FixedBlock< SER_BYTES > &buffer, bool allow_identity=true) DECAF_NOEXCEPT |
| Initialize from C++ fixed-length byte string. More...
|
|
decaf_error_t DECAF_WARN_UNUSED | decode_like_eddsa_and_mul_by_ratio_noexcept (const FixedBlock< DECAF_EDDSA_25519_PUBLIC_BYTES > &buffer) DECAF_NOEXCEPT |
| Initialize from C++ fixed-length byte string, like EdDSA. More...
|
|
void | decode_like_eddsa_and_mul_by_ratio (const FixedBlock< DECAF_EDDSA_25519_PUBLIC_BYTES > &buffer) |
| Decode from EDDSA, multiply by EDDSA_DECODE_RATIO, and ignore any remaining cofactor information. More...
|
|
SecureBuffer | mul_by_ratio_and_encode_like_eddsa () const |
| Multiply by EDDSA_ENCODE_RATIO and encode like EdDSA.
|
|
void | mul_by_ratio_and_encode_like_eddsa (FixedBuffer< DECAF_EDDSA_25519_PUBLIC_BYTES > &out) const |
| Multiply by EDDSA_ENCODE_RATIO and encode like EdDSA.
|
|
SecureBuffer | mul_by_ratio_and_encode_like_ladder () const |
| Multiply by LADDER_ENCODE_RATIO and encode like X25519/X448.
|
|
void | mul_by_ratio_and_encode_like_ladder (FixedBuffer< LADDER_BYTES > &out) const |
| Multiply by LADDER_ENCODE_RATIO and encode like X25519/X448.
|
|
void | set_to_hash (const Block &s) DECAF_NOEXCEPT |
| Map to the curve from a hash buffer. More...
|
|
| operator SecureBuffer () const |
| Encode to string. More...
|
|
size_t | ser_size () const DECAF_NOEXCEPT |
| Serializable instance.
|
|
void | serialize_into (unsigned char *buffer) const DECAF_NOEXCEPT |
| Serializable instance.
|
|
Point | operator+ (const Point &q) const DECAF_NOEXCEPT |
| Point add.
|
|
Point & | operator+= (const Point &q) DECAF_NOEXCEPT |
| Point add.
|
|
Point | operator- (const Point &q) const DECAF_NOEXCEPT |
| Point subtract.
|
|
Point & | operator-= (const Point &q) DECAF_NOEXCEPT |
| Point subtract.
|
|
Point | operator- () const DECAF_NOEXCEPT |
| Point negate.
|
|
Point | times_two () const DECAF_NOEXCEPT |
| Double the point out of place.
|
|
Point & | double_in_place () DECAF_NOEXCEPT |
| Double the point in place.
|
|
bool | operator!= (const Point &q) const DECAF_NOEXCEPT |
| Constant-time compare.
|
|
bool | operator== (const Point &q) const DECAF_NOEXCEPT |
| Constant-time compare.
|
|
Point | operator* (const Scalar &s) const DECAF_NOEXCEPT |
| Scalar multiply.
|
|
Point & | operator*= (const Scalar &s) DECAF_NOEXCEPT |
| Scalar multiply in place.
|
|
Point | operator/ (const Scalar &s) const |
| Multiply by s.inverse(). More...
|
|
Point & | operator/= (const Scalar &s) |
| Multiply by s.inverse(). More...
|
|
bool | validate () const DECAF_NOEXCEPT |
| Validate / sanity check.
|
|
void | dual_scalarmul (Point &q1, Point &q2, const Scalar &r1, const Scalar &r2) const DECAF_NOEXCEPT |
| Dual-scalar multiply, equivalent to this*r1, this*r2 but faster.
|
|
Point | non_secret_combo_with_base (const Scalar &s, const Scalar &s_base) DECAF_NOEXCEPT |
| Double-scalar multiply: this point by the first scalar and base by the second scalar. More...
|
|
Point | debugging_torque () const DECAF_NOEXCEPT |
| Return a point equal to *this, whose internal data is rotated by a torsion element.
|
|
Point | debugging_pscale (const FixedBlock< SER_BYTES > factor) const DECAF_NOEXCEPT |
| Return a point equal to *this, whose internal data has a modified representation.
|
|
Point | debugging_pscale (Rng &r) const DECAF_NOEXCEPT |
| Return a point equal to *this, whose internal data has a randomized representation.
|
|
decaf_error_t | invert_elligator (Buffer buf, uint32_t hint) const DECAF_NOEXCEPT |
| Modify buffer so that Point::from_hash(Buffer) == *this, and return DECAF_SUCCESS; or leave buf unmodified and return DECAF_FAILURE.
|
|
SecureBuffer | steg_encode (Rng &rng) const |
| Steganographically encode this.
|
|
size_t | ser_size () const DECAF_NOEXCEPT |
| Return the number of bytes needed to serialize this object.
|
|
void | serialize_into (unsigned char *buf) const DECAF_NOEXCEPT |
| Serialize this object into a buffer.
|
|
SecureBuffer | serialize () const |
| Serialize this object into a SecureBuffer and return it.
|
|
Element of prime-order elliptic curve group.