elgamal.h 390 B

123456789101112131415161718192021
  1. #pragma once
  2. #include "config.h"
  3. #include <gmp.h>
  4. #include "entropy.h"
  5. typedef struct elgamal_key {
  6. mpz_t sk;
  7. mpz_t pk;
  8. } elgamal_key_t;
  9. typedef struct elgamal_cipher {
  10. mpz_t c1;
  11. mpz_t c2;
  12. } elgamal_cipher_t;
  13. elgamal_key_t elgamal_keygen();
  14. elgamal_cipher_t elgamal_encrypt(elgamal_key_t k, const mpz_t m);
  15. void elgamal_decrypt(mpz_t rop, elgamal_key_t k, elgamal_cipher_t c);