diff options
| author | Benedict <benedict@0xb8000.de> | 2016-12-19 20:06:52 +0100 |
|---|---|---|
| committer | Benedict <benedict@0xb8000.de> | 2017-02-21 13:00:26 +0100 |
| commit | 530fcd5aaf841210a9d2d189f551c309970916e9 (patch) | |
| tree | b82ff437605f29e157874922a39ea25957ec8225 /lib/lib6.c | |
| parent | 7e8ed345e50edd4253d9c409c10650b08a39fa87 (diff) | |
set6: challenge 46: completed
Diffstat (limited to 'lib/lib6.c')
| -rw-r--r-- | lib/lib6.c | 18 |
1 files changed, 13 insertions, 5 deletions
@@ -228,12 +228,20 @@ void dsa_recover_k_from_repeated_nonce(BIGNUM *mess1_hash, BIGNUM *mess2_hash, void dsa_generate_magic_signature(struct dsa_public_params *pub, struct dsa_per_user_param *priv, BIGNUM *mess_hash) { - BIGNUM *tmp = BN_new(); + BIGNUM *tmp = BN_new(); - BN_mod_exp(tmp, priv->public, mess_hash, pub->p, ctx); - BN_mod(priv->r, tmp, pub->q, ctx); + BN_mod_exp(tmp, priv->public, mess_hash, pub->p, ctx); + BN_mod(priv->r, tmp, pub->q, ctx); - BN_mod_inverse(tmp, mess_hash, pub->q, ctx); - BN_mod_mul(priv->s, priv->r, tmp, pub->q, ctx); + BN_mod_inverse(tmp, mess_hash, pub->q, ctx); + BN_mod_mul(priv->s, priv->r, tmp, pub->q, ctx); + +} +int rsa_parity_orcale(BIGNUM *message, struct rsa_key_bignum *private) +{ + BIGNUM *decrypted = BN_new(); + // decrypt and check last bit + rsa_decrypt_bignum(message, decrypted, private); + return BN_is_odd(decrypted); } |
