chiark / gitweb /
sig: Move marshalling responsibility into sign function
[secnet.git] / secnet.h
index e253a14177ff0f161ab7bcba146f7a7e9939b1ad..bd4362e1400fd30608f954a193dc3f8ac01da9e5 100644 (file)
--- a/secnet.h
+++ b/secnet.h
@@ -363,8 +363,8 @@ extern init_module log_module;
 #define CL_PURE         0
 #define CL_RESOLVER     1
 #define CL_RANDOMSRC    2
-#define CL_RSAPUBKEY    3
-#define CL_RSAPRIVKEY   4
+#define CL_SIGPUBKEY    3
+#define CL_SIGPRIVKEY   4
 #define CL_COMM         5
 #define CL_IPIF         6
 #define CL_LOG          7
@@ -402,8 +402,8 @@ struct resolver_if {
 
 /* RANDOMSRC interface */
 
-/* Return some random data. Returns TRUE for success. */
-typedef bool_t random_fn(void *st, int32_t bytes, uint8_t *buff);
+/* Return some random data. Cannot fail. */
+typedef void random_fn(void *st, int32_t bytes, uint8_t *buff);
 
 struct random_if {
     void *st;
@@ -411,21 +411,24 @@ struct random_if {
     random_fn *generate;
 };
 
-/* RSAPUBKEY interface */
+/* SIGPUBKEY interface */
 
-typedef bool_t rsa_checksig_fn(void *st, uint8_t *data, int32_t datalen,
+typedef bool_t sig_checksig_fn(void *st, uint8_t *data, int32_t datalen,
                               cstring_t signature);
-struct rsapubkey_if {
+struct sigpubkey_if {
     void *st;
-    rsa_checksig_fn *check;
+    sig_checksig_fn *check;
 };
 
-/* RSAPRIVKEY interface */
+/* SIGPRIVKEY interface */
 
-typedef string_t rsa_makesig_fn(void *st, uint8_t *data, int32_t datalen);
-struct rsaprivkey_if {
+/* Appends the signature to msg.
+ * Can fail and returnn False, eg if the buffer is too small. */
+typedef bool_t sig_makesig_fn(void *st, uint8_t *data, int32_t datalen,
+                             struct buffer_if *msg);
+struct sigprivkey_if {
     void *st;
-    rsa_makesig_fn *sign;
+    sig_makesig_fn *sign;
 };
 
 /* COMM interface */
@@ -574,7 +577,7 @@ struct transform_inst_if {
 
 struct transform_if {
     void *st;
-    int capab_transformnum;
+    int capab_bit;
     int32_t keylen; /* <<< INT_MAX */
     transform_createinstance_fn *create;
 };