diff options
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); } |
