aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-01-28 22:25:43 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-01-28 22:25:43 +0000
commitaa110b0b4b6173cd58366eeeea338b6dcf668475 (patch)
treedde247be74121e8931f2487922ad41140c64c041 /src
parent175d7c8cc6ad393d1d19c237ceb4d23003e059ff (diff)
downloadrspamd-aa110b0b4b6173cd58366eeeea338b6dcf668475.tar.gz
rspamd-aa110b0b4b6173cd58366eeeea338b6dcf668475.zip
Add keypair generation routine.
Diffstat (limited to 'src')
-rw-r--r--src/libutil/http.c14
-rw-r--r--src/libutil/http.h6
2 files changed, 20 insertions, 0 deletions
diff --git a/src/libutil/http.c b/src/libutil/http.c
index 81771987d..23db6b3a3 100644
--- a/src/libutil/http.c
+++ b/src/libutil/http.c
@@ -1612,6 +1612,20 @@ rspamd_http_connection_make_key (gchar *key, gsize keylen)
return FALSE;
}
+gpointer
+rspamd_http_connection_gen_key (void)
+{
+ struct rspamd_http_keypair *kp;
+
+ kp = g_slice_alloc (sizeof (*kp));
+ REF_INIT_RETAIN (kp, rspamd_http_keypair_dtor);
+
+ crypto_box_keypair (kp->pk, kp->sk);
+ blake2b (kp->id, kp->pk, NULL, sizeof (kp->id), sizeof (kp->pk), 0);
+
+ return (gpointer)kp;
+}
+
void
rspamd_http_connection_set_key (struct rspamd_http_connection *conn,
gpointer key)
diff --git a/src/libutil/http.h b/src/libutil/http.h
index fdb12bf35..d88424626 100644
--- a/src/libutil/http.h
+++ b/src/libutil/http.h
@@ -156,6 +156,12 @@ struct rspamd_http_connection * rspamd_http_connection_new (
gpointer rspamd_http_connection_make_key (gchar *key, gsize keylen);
/**
+ * Generate the encryption keypair
+ * @return opaque pointer pr NULL in case of error
+ */
+gpointer rspamd_http_connection_gen_key (void);
+
+/**
* Set key pointed by an opaque pointer
* @param conn connection structure
* @param key opaque key structure