diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/lib.c | 3 | ||||
| -rw-r--r-- | lib/lib7.c | 13 | ||||
| -rw-r--r-- | lib/lib7.h | 8 |
3 files changed, 23 insertions, 1 deletions
@@ -34,7 +34,8 @@ int isprintable(char *string, int length) int i; for(i=0;i<length;i++) { - if(!(isprint(string[i]) || isspace(string[i]))) { + // ` is only for task50 ... + if(!(isprint(string[i]) || isspace(string[i])) || string[i] == '`') { return 0; } } diff --git a/lib/lib7.c b/lib/lib7.c new file mode 100644 index 0000000..b3e05da --- /dev/null +++ b/lib/lib7.c @@ -0,0 +1,13 @@ +#include "lib7.h" +#include "lib2.h" + +int cbc_mac(char *msg, unsigned int msg_len, char *iv, char *key, char *mac) +{ + int padding_len = 0; + + char *msg_padded = __pkcs7_padding(msg, msg_len, 16, &padding_len); + char *res = malloc(msg_len+padding_len); + aes_cbc(msg_padded, msg_len+padding_len, res, key, iv, 1); + char *ciphertext = malloc(msg_len+padding_len); + memcpy(mac, &res[msg_len+padding_len-16], 16); +} diff --git a/lib/lib7.h b/lib/lib7.h new file mode 100644 index 0000000..724e70d --- /dev/null +++ b/lib/lib7.h @@ -0,0 +1,8 @@ +#ifndef __LIB_7__ +#define __LIB_7__ + + + +int cbc_mac(char *msg, unsigned int msg_len, char *iv, char *key, char *mac); + +#endif |
