#ifndef RSA_LIB
#define RSA_LIB

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
  __int128_t d;
  __int128_t e;
  __int128_t n;
} rsa_Pair;

rsa_Pair rsa_gen_pair(__int128_t p, __int128_t q, __int128_t e);

__int128_t rsa_encrypt(__int128_t data, __int128_t e, __int128_t n);
__int128_t rsa_decrypt(__int128_t data, __int128_t d, __int128_t n);

#ifdef __cplusplus
}
#endif

#endif
