diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-01-28 22:25:43 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-01-28 22:25:43 +0000 |
commit | aa110b0b4b6173cd58366eeeea338b6dcf668475 (patch) | |
tree | dde247be74121e8931f2487922ad41140c64c041 /src | |
parent | 175d7c8cc6ad393d1d19c237ceb4d23003e059ff (diff) | |
download | rspamd-aa110b0b4b6173cd58366eeeea338b6dcf668475.tar.gz rspamd-aa110b0b4b6173cd58366eeeea338b6dcf668475.zip |
Add keypair generation routine.
Diffstat (limited to 'src')
-rw-r--r-- | src/libutil/http.c | 14 | ||||
-rw-r--r-- | src/libutil/http.h | 6 |
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 |