1109998Smarkmtypedef int cl_engine_init(void);
2109998Smarkmtypedef int cl_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
3296465Sdelphij                       const BIGNUM *m, BN_CTX *cgx);
4109998Smarkmtypedef int cl_mod_exp_crt(BIGNUM *r, BIGNUM *a, const BIGNUM *p,
5296465Sdelphij                           const BIGNUM *q, const BIGNUM *dmp1,
6296465Sdelphij                           const BIGNUM *dmq1, const BIGNUM *iqmp,
7296465Sdelphij                           BN_CTX *ctx);
8109998Smarkmtypedef int cl_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa);
9109998Smarkmtypedef int cl_rsa_pub_enc(int flen, const unsigned char *from,
10296465Sdelphij                           unsigned char *to, RSA *rsa, int padding);
11109998Smarkmtypedef int cl_rsa_pub_dec(int flen, const unsigned char *from,
12296465Sdelphij                           unsigned char *to, RSA *rsa, int padding);
13296465Sdelphijtypedef int cl_rsa_priv_enc(int flen, const unsigned char *from,
14296465Sdelphij                            unsigned char *to, RSA *rsa, int padding);
15296465Sdelphijtypedef int cl_rsa_priv_dec(int flen, const unsigned char *from,
16296465Sdelphij                            unsigned char *to, RSA *rsa, int padding);
17109998Smarkmtypedef int cl_rand_bytes(unsigned char *buf, int num);
18109998Smarkmtypedef DSA_SIG *cl_dsa_sign(const unsigned char *dgst, int dlen, DSA *dsa);
19109998Smarkmtypedef int cl_dsa_verify(const unsigned char *dgst, int dgst_len,
20296465Sdelphij                          DSA_SIG *sig, DSA *dsa);
21109998Smarkm
22109998Smarkmstatic const char *CLUSTER_LABS_LIB_NAME = "cluster_labs";
23296465Sdelphijstatic const char *CLUSTER_LABS_F1 = "hw_engine_init";
24296465Sdelphijstatic const char *CLUSTER_LABS_F2 = "hw_mod_exp";
25296465Sdelphijstatic const char *CLUSTER_LABS_F3 = "hw_mod_exp_crt";
26296465Sdelphijstatic const char *CLUSTER_LABS_F4 = "hw_rsa_mod_exp";
27296465Sdelphijstatic const char *CLUSTER_LABS_F5 = "hw_rsa_priv_enc";
28296465Sdelphijstatic const char *CLUSTER_LABS_F6 = "hw_rsa_priv_dec";
29296465Sdelphijstatic const char *CLUSTER_LABS_F7 = "hw_rsa_pub_enc";
30296465Sdelphijstatic const char *CLUSTER_LABS_F8 = "hw_rsa_pub_dec";
31296465Sdelphijstatic const char *CLUSTER_LABS_F20 = "hw_rand_bytes";
32296465Sdelphijstatic const char *CLUSTER_LABS_F30 = "hw_dsa_sign";
33296465Sdelphijstatic const char *CLUSTER_LABS_F31 = "hw_dsa_verify";
34