diff options
Diffstat (limited to 'lib/lib6.h')
| -rw-r--r-- | lib/lib6.h | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -8,9 +8,33 @@ #include "lib.h" +struct dsa_public_params { + BIGNUM *p; + BIGNUM *q; + BIGNUM *g; + unsigned int bits; +}; + +struct dsa_per_user_param { + BIGNUM *public; + BIGNUM *private; + // signature data here also because they should not be here + BIGNUM *r; + BIGNUM *s; +}; + + int rsa_sign_bignum(BIGNUM *message, BIGNUM *signed_message, struct rsa_key_bignum *private); int rsa_verify_bignum(BIGNUM *signed_message, BIGNUM *org_message, struct rsa_key_bignum *public); int shitty_pkcs1_5_padding_verify(char *to_verify, int len, char *message); int pkcs1_5_padding_verify(char *to_verify, int len, char *message); - +void init_dsa_pub_param(struct dsa_public_params *p); +void dsa_compute_per_user_keys(struct dsa_public_params *pub_param, struct + dsa_per_user_param *priv_param); +void dsa_sign(char *mess, struct dsa_public_params *pub_param, struct dsa_per_user_param + *priv_param, BIGNUM *k); +int dsa_verify(char *mess, struct dsa_public_params *pub, struct dsa_per_user_param + *priv); +void dsa_recover_x_from_known_k(struct dsa_public_params *pub, BIGNUM *k, + struct dsa_per_user_param *priv, BIGNUM *mess_hash); #endif /* __LIB_6_H__ */ |
