summaryrefslogtreecommitdiff
path: root/lib/lib6.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lib6.h')
-rw-r--r--lib/lib6.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/lib6.h b/lib/lib6.h
index 23741b0..88fc530 100644
--- a/lib/lib6.h
+++ b/lib/lib6.h
@@ -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__ */