PublicKey.hpp 964 B

1234567891011121314151617181920212223242526
  1. #ifndef __PUBLICKEY_HPP
  2. #define __PUBLICKEY_HPP
  3. #include "Bipoint.hpp"
  4. class PublicKey
  5. {
  6. public:
  7. PublicKey() = default;
  8. PublicKey(const Bipoint<curvepoint_fp_t>& a, const Bipoint<twistpoint_fp2_t>& b, const Bipoint<curvepoint_fp_t>& c, const Bipoint<twistpoint_fp2_t>& d);
  9. void set(const Bipoint<curvepoint_fp_t>& a, const Bipoint<twistpoint_fp2_t>& b, const Bipoint<curvepoint_fp_t>& c, const Bipoint<twistpoint_fp2_t>& d);
  10. Bipoint<curvepoint_fp_t> get_bipoint_curvegen() const;
  11. Bipoint<twistpoint_fp2_t> get_bipoint_twistgen() const;
  12. Bipoint<curvepoint_fp_t> get_bipoint_curve_groupelt() const;
  13. Bipoint<twistpoint_fp2_t> get_bipoint_twist_groupelt() const;
  14. private:
  15. Bipoint<curvepoint_fp_t> bipoint_curvegen; // subgroup_gen(i1g, j1g)
  16. Bipoint<twistpoint_fp2_t> bipoint_twistgen; // subgroup_gen(i2h, j2h)
  17. Bipoint<curvepoint_fp_t> bipoint_curve_groupelt; // u
  18. Bipoint<twistpoint_fp2_t> bipoint_twist_groupelt; // v
  19. };
  20. #endif