Finish crypto wrapping. Also provide wrappers for OpenSSL.
[tinc] / src / gcrypt / rsa.h
similarity index 65%
rename from src/rsa.h
rename to src/gcrypt/rsa.h
index bcb795e..0b3937a 100644 (file)
--- a/src/rsa.h
 
 #include <gcrypt.h>
 
-typedef struct rsa_key_t {
+typedef struct rsa {
        gcry_mpi_t n;
        gcry_mpi_t e;
        gcry_mpi_t d;
-} rsa_key_t;
-
-extern bool read_pem_rsa_public_key(FILE *fp, struct rsa_key_t *key);
-extern bool read_pem_rsa_private_key(FILE *fp, struct rsa_key_t *key);
-extern unsigned int get_rsa_size(struct rsa_key_t *key);
-extern bool rsa_public_encrypt(size_t len, void *in, void *out, struct rsa_key_t *key);
-extern bool rsa_private_decrypt(size_t len, void *in, void *out, struct rsa_key_t *key);
-
+} rsa_t;
+
+extern bool rsa_set_hex_public_key(rsa_t *rsa, char *n, char *e);
+extern bool rsa_set_hex_private_key(rsa_t *rsa, char *n, char *e, char *d);
+extern bool rsa_read_pem_public_key(rsa_t *rsa, FILE *fp);
+extern bool rsa_read_pem_private_key(rsa_t *rsa, FILE *fp);
+extern size_t rsa_size(rsa_t *rsa);
+extern bool rsa_public_encrypt(rsa_t *rsa, void *in, size_t len, void *out);
+extern bool rsa_private_decrypt(rsa_t *rsa, void *in, size_t len, void *out);
 
 #endif