10 #include "contiki-lib.h"
11 #include "contiki-net.h"
12 #endif /* WITH_CONTIKI */
18 #include "ccm-testdata.c"
21 int fls(unsigned int i) {
30 dump(unsigned char *buf, size_t len) {
33 printf("%02x ", buf[i++]);
43 PROCESS(ccm_test_process, "CCM test process");
44 AUTOSTART_PROCESSES(&ccm_test_process);
45 PROCESS_THREAD(ccm_test_process, ev, d)
47 #else /* WITH_CONTIKI */
48 int main(int argc, char **argv) {
49 #endif /* WITH_CONTIKI */
57 #endif /* WITH_CONTIKI */
59 for (n = 0; n < sizeof(data)/sizeof(struct test_vector); ++n) {
61 if (rijndael_set_key_enc_only(&ctx, data[n].key, 8*sizeof(data[n].key)) < 0) {
62 fprintf(stderr, "cannot set key\n");
66 len = dtls_ccm_encrypt_message(&ctx, data[n].M, data[n].L, data[n].nonce,
67 data[n].msg + data[n].la,
68 data[n].lm - data[n].la,
69 data[n].msg, data[n].la);
72 printf("Packet Vector #%d ", n+1);
73 if (len != data[n].r_lm || memcmp(data[n].msg, data[n].result, len))
78 printf("result is (total length = %lu):\n\t", len);
79 dump(data[n].msg, len);
81 len = dtls_ccm_decrypt_message(&ctx, data[n].M, data[n].L, data[n].nonce,
82 data[n].msg + data[n].la, len - data[n].la,
83 data[n].msg, data[n].la);
86 printf("Packet Vector #%d: cannot decrypt message\n", n+1);
88 printf("\t*** MAC verified (total length = %lu) ***\n", len + data[n].la);
93 #else /* WITH_CONTIKI */
95 #endif /* WITH_CONTIKI */