class axl::cry::EcPoint

#include <axl_cry_EcPoint.h>

class EcPoint: public axl::sl::Handle
{
public:
    // construction

    EcPoint(EC_GROUP* group);
    EcPoint(EC_POINT* h);

    // methods

    bool
    create(EC_GROUP* group);

    bool
    createCopy(
        EC_POINT* src,
        EC_GROUP* group
        );

    bool
    copy(EC_POINT* src);

    bool
    getData(
        sl::Array<char>* data,
        EC_GROUP* group,
        point_conversion_form_t form = POINT_CONVERSION_COMPRESSED,
        BN_CTX* ctx = NULL
        );

    sl::Array<char>
    getData(
        EC_GROUP* group,
        point_conversion_form_t form = POINT_CONVERSION_COMPRESSED,
        BN_CTX* ctx = NULL
        );

    bool
    setData(
        EC_GROUP* group,
        const void* p,
        size_t size,
        BN_CTX* ctx = NULL
        );

    bool
    getBigNum(
        EC_GROUP* group,
        BIGNUM* bigNum,
        point_conversion_form_t form = POINT_CONVERSION_COMPRESSED,
        BN_CTX* ctx = NULL
        );

    bool
    setBigNum(
        EC_GROUP* group,
        const BIGNUM* bigNum,
        BN_CTX* ctx = NULL
        );

    bool
    getDecString(
        sl::String* string,
        EC_GROUP* group,
        point_conversion_form_t form = POINT_CONVERSION_COMPRESSED,
        BN_CTX* ctx = NULL
        );

    sl::String
    getDecString(
        EC_GROUP* group,
        point_conversion_form_t form = POINT_CONVERSION_COMPRESSED,
        BN_CTX* ctx = NULL
        );

    bool
    setDecString(
        EC_GROUP* group,
        const sl::StringRef& string,
        BN_CTX* ctx = NULL
        );

    bool
    getHexString(
        sl::String* string,
        EC_GROUP* group,
        point_conversion_form_t form = POINT_CONVERSION_COMPRESSED,
        BN_CTX* ctx = NULL
        );

    sl::String
    getHexString(
        EC_GROUP* group,
        point_conversion_form_t form = POINT_CONVERSION_COMPRESSED,
        BN_CTX* ctx = NULL
        );

    bool
    setHexString(
        EC_GROUP* group,
        const sl::StringRef& string,
        BN_CTX* ctx = NULL
        );

    bool
    isAtInfinity(EC_GROUP* group);

    bool
    isOnCurve(
        EC_GROUP* group,
        BN_CTX* ctx = NULL
        );

    bool
    isEqual(
        EC_GROUP* group,
        EC_POINT* op,
        BN_CTX* ctx = NULL
        );

    bool
    add(
        EC_GROUP* group,
        EC_POINT* op1,
        EC_POINT* op2,
        BN_CTX* ctx = NULL
        );

    bool
    mul(
        EC_GROUP* group,
        BIGNUM* op1,
        EC_POINT* op2,
        BIGNUM* op3,
        BN_CTX* ctx = NULL
        );

    bool
    mul(
        EC_GROUP* group,
        BIGNUM* op,
        BN_CTX* ctx = NULL
        );

    bool
    dbl(
        EC_GROUP* group,
        EC_POINT* op,
        BN_CTX* ctx = NULL
        );

    bool
    invert(
        EC_GROUP* group,
        BN_CTX* ctx = NULL
        );

    bool
    makeAffine(
        EC_GROUP* group,
        BN_CTX* ctx = NULL
        );
};

Inherited Members

public:
    // typedefs

    typedef T H;

    // methods

    operator T() const;

    T
    operator->() const;

    const Handle&
    operator=(T h);

    bool
    isOpen() const;

    void
    close();

    void
    attach(T h);

    T
    detach();

    T*
    p();

    static
    T
    getInvalidHandle();