chiark / gitweb /
site: support multiple transforms
[secnet.git] / transform-cbcmac.c
index 1e8a5e9b8acc4bc181f3b9cdbff5b32a2142abb9..95c64e859a7abfbaba2839df15e3d7da92fac48b 100644 (file)
@@ -40,7 +40,8 @@ struct transform_inst {
 
 #define PKCS5_MASK 15
 
-static bool_t transform_setkey(void *sst, uint8_t *key, int32_t keylen)
+static bool_t transform_setkey(void *sst, uint8_t *key, int32_t keylen,
+                              bool_t direction)
 {
     struct transform_inst *ti=sst;
 
@@ -262,7 +263,6 @@ static list_t *transform_apply(closure_t *self, struct cloc loc,
     st->ops.st=st;
     st->ops.max_start_pad=28; /* 4byte seqnum, 16byte pad, 4byte MACIV,
                                 4byte IV */
-    st->ops.max_end_pad=16; /* 16byte CBCMAC */
 
     /* We need 256*2 bits for serpent keys, 32 bits for CBC-IV and 32 bits
        for CBCMAC-IV, and 32 bits for init sequence number */
@@ -278,6 +278,8 @@ static list_t *transform_apply(closure_t *self, struct cloc loc,
     st->max_seq_skew=dict_read_number(dict, "max-sequence-skew",
                                      False, "serpent-cbc256", loc, 10);
 
+    SET_CAPAB_TRANSFORMNUM(CAPAB_TRANSFORMNUM_SERPENT256CBC);
+
     return new_closure(&st->cl);
 }