diff options
| author | Benedict <benedict@0xb8000.de> | 2016-12-17 17:40:31 +0100 |
|---|---|---|
| committer | Benedict <benedict@0xb8000.de> | 2017-02-21 13:00:26 +0100 |
| commit | 29591502e2ab22a262063e5552438b23380b3e55 (patch) | |
| tree | 184ac8b1ddb1ad264cdeb660361dfd7125c8363e /lib/lib6.h | |
| parent | 1fe002d0b46b3e5b3559dd629f3d56b16bb12c0b (diff) | |
set6: challenge 43: completed
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__ */ |
