LCOV - code coverage report
Current view: top level - test/oscore_latency_tests - oscore_latency_test.c (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 24 0.0 %
Date: 2024-09-16 20:15:30 Functions: 0 1 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 6 0.0 %

           Branch data     Line data    Source code
       1                 :            : /*
       2                 :            :  * Copyright (c) 2023 Eriptic Technologies.
       3                 :            :  *
       4                 :            :  * SPDX-License-Identifier: Apache-2.0 or MIT
       5                 :            :  */
       6                 :            : #include <zephyr/ztest.h>
       7                 :            : 
       8                 :            : #include "latency.h"
       9                 :            : #include "oscore.h"
      10                 :            : #include "oscore_test_vectors.h"
      11                 :            : 
      12                 :            : const uint8_t coap_pkt[] = {
      13                 :            :         0x44, 0x01, 0x5d, 0x1f, 0x00, 0x00, 0x39, 0x74, 0x39, 0x6c, 0x6f, 0x63,
      14                 :            :         0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x83, 0x74, 0x76, 0x31, 0xff, 0x00,
      15                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      16                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      17                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      18                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      19                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      20                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      21                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      22                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      23                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      24                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      25                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      26                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      27                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      28                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      29                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      30                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      31                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      32                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      33                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      34                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      35                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      36                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      37                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      38                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      39                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      40                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      41                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      42                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      43                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      44                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      45                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      46                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      47                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      48                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      49                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      50                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      51                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      52                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      53                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      54                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      55                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      56                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      57                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      58                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      59                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      60                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      61                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      62                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      63                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      64                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      65                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      66                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      67                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      68                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      69                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      70                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      71                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      72                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      73                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      74                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      75                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      76                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      77                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      78                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      79                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      80                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      81                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      82                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      83                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      84                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      85                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      86                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      87                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      88                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      89                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      90                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      91                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      92                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      93                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      94                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      95                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      96                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      97                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      98                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      99                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     100                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     101                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     102                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     103                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     104                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     105                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     106                 :            :         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     107                 :            : };
     108                 :            : uint8_t oscore_pkt[sizeof(coap_pkt)];
     109                 :            : uint32_t oscore_pkt_len;
     110                 :            : uint8_t reconverted_coap_pkt[sizeof(coap_pkt)];
     111                 :            : uint32_t reconverted_coap_pkt_len;
     112                 :            : const uint8_t FIXED_COAP_SIZE = 23;
     113                 :            : const uint16_t payload_lengths[] = { 10, 20, 50, 100, 200, 500, 1000 };
     114                 :            : 
     115                 :          0 : void t800_oscore_latency_test(void)
     116                 :            : {
     117                 :          0 :         enum err r;
     118                 :          0 :         struct context c_client;
     119                 :          0 :         struct oscore_init_params params_client = {
     120                 :            :                 .master_secret.ptr = (uint8_t *)T1__MASTER_SECRET,
     121                 :            :                 .master_secret.len = T1__MASTER_SECRET_LEN,
     122                 :            :                 .sender_id.ptr = (uint8_t *)T1__SENDER_ID,
     123                 :            :                 .sender_id.len = T1__SENDER_ID_LEN,
     124                 :            :                 .recipient_id.ptr = (uint8_t *)T1__RECIPIENT_ID,
     125                 :            :                 .recipient_id.len = T1__RECIPIENT_ID_LEN,
     126                 :            :                 .master_salt.ptr = (uint8_t *)T1__MASTER_SALT,
     127                 :            :                 .master_salt.len = T1__MASTER_SALT_LEN,
     128                 :            :                 .id_context.ptr = (uint8_t *)T1__ID_CONTEXT,
     129                 :            :                 .id_context.len = T1__ID_CONTEXT_LEN,
     130                 :            :                 .aead_alg = OSCORE_AES_CCM_16_64_128,
     131                 :            :                 .hkdf = OSCORE_SHA_256,
     132                 :            :                 .fresh_master_secret_salt = true,
     133                 :            :         };
     134                 :            : 
     135                 :          0 :         r = oscore_context_init(&params_client, &c_client);
     136                 :          0 :         zassert_equal(r, ok, "Error in oscore_context_init for client");
     137                 :            : 
     138                 :          0 :         struct context c_server;
     139                 :          0 :         struct oscore_init_params params_server = {
     140                 :            :                 .master_secret.ptr = (uint8_t *)T1__MASTER_SECRET,
     141                 :            :                 .master_secret.len = T1__MASTER_SECRET_LEN,
     142                 :            :                 .sender_id.ptr = (uint8_t *)T1__RECIPIENT_ID,
     143                 :            :                 .sender_id.len = T1__RECIPIENT_ID_LEN,
     144                 :            :                 .recipient_id.ptr = (uint8_t *)T1__SENDER_ID,
     145                 :            :                 .recipient_id.len = T1__SENDER_ID_LEN,
     146                 :            :                 .master_salt.ptr = (uint8_t *)T1__MASTER_SALT,
     147                 :            :                 .master_salt.len = T1__MASTER_SALT_LEN,
     148                 :            :                 .id_context.ptr = (uint8_t *)T1__ID_CONTEXT,
     149                 :            :                 .id_context.len = T1__ID_CONTEXT_LEN,
     150                 :            :                 .aead_alg = OSCORE_AES_CCM_16_64_128,
     151                 :            :                 .hkdf = OSCORE_SHA_256,
     152                 :            :                 .fresh_master_secret_salt = true,
     153                 :            :         };
     154                 :          0 :         r = oscore_context_init(&params_server, &c_server);
     155                 :          0 :         zassert_equal(r, ok, "Error in oscore_context_init for server");
     156                 :            : 
     157                 :          0 :         for (int i = 0;
     158         [ #  # ]:          0 :              i < (sizeof(payload_lengths) / sizeof(payload_lengths[0])); i++) {
     159                 :          0 :                 printf("Latency measurement with payload length %d\n",
     160                 :          0 :                        payload_lengths[i]);
     161                 :          0 :                 oscore_pkt_len = sizeof(oscore_pkt);
     162                 :          0 :                 printf("coap2oscore ->  ");
     163         [ #  # ]:          0 :                 MEASURE_LATENCY(
     164                 :            :                         coap2oscore((uint8_t *)coap_pkt,
     165                 :            :                                     FIXED_COAP_SIZE + payload_lengths[i],
     166                 :            :                                     oscore_pkt, &oscore_pkt_len, &c_client));
     167                 :          0 :                 zassert_equal(r, ok, "Error in coap2oscore!");
     168                 :            : 
     169                 :          0 :                 reconverted_coap_pkt_len = sizeof(coap_pkt);
     170                 :          0 :                 printf("oscore2coap ->  ");
     171         [ #  # ]:          0 :                 MEASURE_LATENCY(oscore2coap(
     172                 :            :                         oscore_pkt, oscore_pkt_len, reconverted_coap_pkt,
     173                 :            :                         &reconverted_coap_pkt_len, &c_server));
     174                 :          0 :                 zassert_equal(r, ok, "Error in oscore2coap!");
     175                 :            : 
     176                 :            :                 /*check if we recovered the coap packet that the client sent*/
     177                 :          0 :                 zassert_mem_equal__(coap_pkt, reconverted_coap_pkt,
     178                 :            :                                     FIXED_COAP_SIZE + payload_lengths[i],
     179                 :            :                                     "coap2oscore/oscore2coap failed");
     180                 :            :         }
     181                 :          0 : }

Generated by: LCOV version 1.14