edhoc 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +170 -0
  2. package/binding.gyp +13 -11
  3. package/dist/crypto.d.ts +9 -2
  4. package/dist/crypto.d.ts.map +1 -1
  5. package/dist/crypto.js +112 -84
  6. package/dist/edhoc.d.ts +31 -9
  7. package/dist/edhoc.d.ts.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/x509credentials.d.ts +20 -0
  12. package/dist/x509credentials.d.ts.map +1 -0
  13. package/dist/x509credentials.js +140 -0
  14. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_decode.h +1 -1
  15. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_encode.h +1 -1
  16. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_types.h +1 -1
  17. package/external/libedhoc/backends/cbor/include/backend_cbor_ead_decode.h +2 -2
  18. package/external/libedhoc/backends/cbor/include/backend_cbor_ead_encode.h +2 -2
  19. package/external/libedhoc/backends/cbor/include/backend_cbor_edhoc_types.h +48 -43
  20. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_decode.h +1 -1
  21. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_encode.h +1 -1
  22. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_types.h +3 -3
  23. package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_decode.h +1 -1
  24. package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_encode.h +1 -1
  25. package/external/libedhoc/backends/cbor/include/backend_cbor_info_decode.h +1 -1
  26. package/external/libedhoc/backends/cbor/include/backend_cbor_info_encode.h +1 -1
  27. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_decode.h +1 -1
  28. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_encode.h +1 -1
  29. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_types.h +1 -1
  30. package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_decode.h +1 -1
  31. package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_encode.h +1 -1
  32. package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_decode.h +1 -1
  33. package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_encode.h +1 -1
  34. package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_decode.h +1 -1
  35. package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_encode.h +1 -1
  36. package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_decode.h +1 -1
  37. package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_encode.h +1 -1
  38. package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_decode.h +1 -1
  39. package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_encode.h +1 -1
  40. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_decode.h +1 -1
  41. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_encode.h +1 -1
  42. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_decode.h +1 -1
  43. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_encode.h +1 -1
  44. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_decode.h +3 -3
  45. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_encode.h +3 -3
  46. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_decode.h +1 -1
  47. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_encode.h +1 -1
  48. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_types.h +4 -4
  49. package/external/libedhoc/backends/cbor/include/backend_cbor_x509_types.h +93 -83
  50. package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_decode.c +11 -20
  51. package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_encode.c +11 -20
  52. package/external/libedhoc/backends/cbor/src/backend_cbor_ead_decode.c +27 -32
  53. package/external/libedhoc/backends/cbor/src/backend_cbor_ead_encode.c +27 -32
  54. package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_decode.c +14 -23
  55. package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_encode.c +14 -23
  56. package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_decode.c +63 -52
  57. package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_encode.c +62 -51
  58. package/external/libedhoc/backends/cbor/src/backend_cbor_info_decode.c +14 -23
  59. package/external/libedhoc/backends/cbor/src/backend_cbor_info_encode.c +14 -23
  60. package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_decode.c +11 -20
  61. package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_encode.c +11 -20
  62. package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_decode.c +54 -51
  63. package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_encode.c +54 -51
  64. package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_decode.c +11 -20
  65. package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_encode.c +11 -20
  66. package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_decode.c +11 -20
  67. package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_encode.c +11 -20
  68. package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_decode.c +11 -20
  69. package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_encode.c +11 -20
  70. package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_decode.c +36 -37
  71. package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_encode.c +36 -37
  72. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_decode.c +103 -80
  73. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_encode.c +102 -79
  74. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_decode.c +99 -76
  75. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_encode.c +98 -75
  76. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_decode.c +40 -41
  77. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_encode.c +40 -41
  78. package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_decode.c +15 -24
  79. package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_encode.c +15 -24
  80. package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode.c +31 -0
  81. package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode.h +10 -0
  82. package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode2.c +18 -0
  83. package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode2.h +9 -0
  84. package/external/libedhoc/externals/Unity/examples/example_1/test/TestProductionCode.c +69 -0
  85. package/external/libedhoc/externals/Unity/examples/example_1/test/TestProductionCode2.c +38 -0
  86. package/external/libedhoc/externals/Unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
  87. package/external/libedhoc/externals/Unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
  88. package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode.c +31 -0
  89. package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode.h +10 -0
  90. package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode2.c +18 -0
  91. package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode2.h +9 -0
  92. package/external/libedhoc/externals/Unity/examples/example_2/test/TestProductionCode.c +71 -0
  93. package/external/libedhoc/externals/Unity/examples/example_2/test/TestProductionCode2.c +40 -0
  94. package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +16 -0
  95. package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +18 -0
  96. package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/all_tests.c +19 -0
  97. package/external/libedhoc/externals/Unity/examples/example_3/helper/UnityHelper.c +17 -0
  98. package/external/libedhoc/externals/Unity/examples/example_3/helper/UnityHelper.h +19 -0
  99. package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode.c +31 -0
  100. package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode.h +10 -0
  101. package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode2.c +18 -0
  102. package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode2.h +9 -0
  103. package/external/libedhoc/externals/Unity/examples/example_3/test/TestProductionCode.c +69 -0
  104. package/external/libedhoc/externals/Unity/examples/example_3/test/TestProductionCode2.c +38 -0
  105. package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode.c +31 -0
  106. package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode.h +10 -0
  107. package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode2.c +18 -0
  108. package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode2.h +9 -0
  109. package/external/libedhoc/externals/Unity/examples/example_4/test/TestProductionCode.c +70 -0
  110. package/external/libedhoc/externals/Unity/examples/example_4/test/TestProductionCode2.c +42 -0
  111. package/external/libedhoc/externals/Unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -0
  112. package/external/libedhoc/externals/Unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -0
  113. package/external/libedhoc/externals/Unity/examples/unity_config.h +251 -0
  114. package/external/libedhoc/externals/Unity/extras/bdd/src/unity_bdd.h +44 -0
  115. package/external/libedhoc/externals/Unity/extras/bdd/test/test_bdd.c +129 -0
  116. package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture.c +310 -0
  117. package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture.h +95 -0
  118. package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture_internals.h +51 -0
  119. package/external/libedhoc/externals/Unity/extras/fixture/test/main/AllTests.c +20 -0
  120. package/external/libedhoc/externals/Unity/extras/fixture/test/template_fixture_tests.c +40 -0
  121. package/external/libedhoc/externals/Unity/extras/fixture/test/unity_fixture_Test.c +246 -0
  122. package/external/libedhoc/externals/Unity/extras/fixture/test/unity_fixture_TestRunner.c +33 -0
  123. package/external/libedhoc/externals/Unity/extras/memory/src/unity_memory.c +203 -0
  124. package/external/libedhoc/externals/Unity/extras/memory/src/unity_memory.h +61 -0
  125. package/external/libedhoc/externals/Unity/extras/memory/test/unity_memory_Test.c +326 -0
  126. package/external/libedhoc/externals/Unity/extras/memory/test/unity_memory_TestRunner.c +50 -0
  127. package/external/libedhoc/externals/Unity/extras/memory/test/unity_output_Spy.c +57 -0
  128. package/external/libedhoc/externals/Unity/extras/memory/test/unity_output_Spy.h +17 -0
  129. package/external/libedhoc/externals/Unity/src/unity.c +2501 -0
  130. package/external/libedhoc/externals/Unity/src/unity.h +698 -0
  131. package/external/libedhoc/externals/Unity/src/unity_internals.h +1183 -0
  132. package/external/libedhoc/externals/Unity/test/expectdata/testsample_cmd.c +61 -0
  133. package/external/libedhoc/externals/Unity/test/expectdata/testsample_def.c +57 -0
  134. package/external/libedhoc/externals/Unity/test/expectdata/testsample_head1.c +55 -0
  135. package/external/libedhoc/externals/Unity/test/expectdata/testsample_head1.h +15 -0
  136. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_cmd.c +80 -0
  137. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_def.c +76 -0
  138. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_head1.c +75 -0
  139. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_head1.h +13 -0
  140. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_new1.c +89 -0
  141. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_new2.c +89 -0
  142. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_param.c +77 -0
  143. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_run1.c +89 -0
  144. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_run2.c +89 -0
  145. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_yaml.c +90 -0
  146. package/external/libedhoc/externals/Unity/test/expectdata/testsample_new1.c +67 -0
  147. package/external/libedhoc/externals/Unity/test/expectdata/testsample_new2.c +70 -0
  148. package/external/libedhoc/externals/Unity/test/expectdata/testsample_param.c +58 -0
  149. package/external/libedhoc/externals/Unity/test/expectdata/testsample_run1.c +67 -0
  150. package/external/libedhoc/externals/Unity/test/expectdata/testsample_run2.c +70 -0
  151. package/external/libedhoc/externals/Unity/test/expectdata/testsample_yaml.c +71 -0
  152. package/external/libedhoc/externals/Unity/test/testdata/CException.h +18 -0
  153. package/external/libedhoc/externals/Unity/test/testdata/Defs.h +16 -0
  154. package/external/libedhoc/externals/Unity/test/testdata/cmock.h +21 -0
  155. package/external/libedhoc/externals/Unity/test/testdata/mockMock.h +20 -0
  156. package/external/libedhoc/externals/Unity/test/testdata/testRunnerGenerator.c +204 -0
  157. package/external/libedhoc/externals/Unity/test/testdata/testRunnerGeneratorSmall.c +73 -0
  158. package/external/libedhoc/externals/Unity/test/testdata/testRunnerGeneratorWithMocks.c +200 -0
  159. package/external/libedhoc/externals/Unity/test/tests/self_assessment_utils.h +151 -0
  160. package/external/libedhoc/externals/Unity/test/tests/test_unity_arrays.c +2941 -0
  161. package/external/libedhoc/externals/Unity/test/tests/test_unity_core.c +375 -0
  162. package/external/libedhoc/externals/Unity/test/tests/test_unity_doubles.c +1285 -0
  163. package/external/libedhoc/externals/Unity/test/tests/test_unity_floats.c +1395 -0
  164. package/external/libedhoc/externals/Unity/test/tests/test_unity_integers.c +2863 -0
  165. package/external/libedhoc/externals/Unity/test/tests/test_unity_integers_64.c +783 -0
  166. package/external/libedhoc/externals/Unity/test/tests/test_unity_memory.c +82 -0
  167. package/external/libedhoc/externals/Unity/test/tests/test_unity_parameterized.c +309 -0
  168. package/external/libedhoc/externals/Unity/test/tests/test_unity_parameterizedDemo.c +28 -0
  169. package/external/libedhoc/externals/Unity/test/tests/test_unity_strings.c +330 -0
  170. package/external/libedhoc/externals/Unity/test/tests/types_for_test.h +21 -0
  171. package/external/libedhoc/externals/zcbor/include/zcbor_common.h +147 -60
  172. package/external/libedhoc/externals/zcbor/include/zcbor_decode.h +291 -202
  173. package/external/libedhoc/externals/zcbor/include/zcbor_encode.h +100 -156
  174. package/external/libedhoc/externals/zcbor/include/zcbor_print.h +165 -0
  175. package/external/libedhoc/externals/zcbor/samples/hello_world/src/main.c +1 -1
  176. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_decode.h +1 -1
  177. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_encode.h +1 -1
  178. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_types.h +4 -4
  179. package/external/libedhoc/externals/zcbor/samples/pet/src/main.c +4 -4
  180. package/external/libedhoc/externals/zcbor/samples/pet/src/pet_decode.c +15 -24
  181. package/external/libedhoc/externals/zcbor/samples/pet/src/pet_encode.c +14 -23
  182. package/external/libedhoc/externals/zcbor/src/zcbor_common.c +202 -29
  183. package/external/libedhoc/externals/zcbor/src/zcbor_decode.c +633 -173
  184. package/external/libedhoc/externals/zcbor/src/zcbor_encode.c +71 -184
  185. package/external/libedhoc/externals/zcbor/tests/decode/test1_suit_old_formats/src/main.c +152 -153
  186. package/external/libedhoc/externals/zcbor/tests/decode/test2_suit/src/main.c +64 -64
  187. package/external/libedhoc/externals/zcbor/tests/decode/test3_simple/src/main.c +15 -16
  188. package/external/libedhoc/externals/zcbor/tests/decode/test5_corner_cases/src/main.c +228 -84
  189. package/external/libedhoc/externals/zcbor/tests/decode/test7_suit9_simple/src/main.c +9 -9
  190. package/external/libedhoc/externals/zcbor/tests/decode/test8_suit12/src/main.c +0 -1
  191. package/external/libedhoc/externals/zcbor/tests/decode/test9_manifest14/src/main.c +172 -173
  192. package/external/libedhoc/externals/zcbor/tests/encode/test1_suit/src/main.c +73 -73
  193. package/external/libedhoc/externals/zcbor/tests/encode/test2_simple/src/main.c +1 -2
  194. package/external/libedhoc/externals/zcbor/tests/encode/test3_corner_cases/src/main.c +83 -56
  195. package/external/libedhoc/externals/zcbor/tests/encode/test4_senml/src/main.c +15 -16
  196. package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_everything.c +12 -0
  197. package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_manifest12.c +69 -69
  198. package/external/libedhoc/externals/zcbor/tests/unit/test1_unit_tests/src/main.c +448 -55
  199. package/external/libedhoc/externals/zcbor/tests/unit/test3_float16/src/main.c +49 -48
  200. package/external/libedhoc/include/edhoc.h +348 -54
  201. package/external/libedhoc/include/edhoc_common.h +289 -0
  202. package/external/libedhoc/include/edhoc_context.h +60 -35
  203. package/external/libedhoc/include/edhoc_credentials.h +55 -7
  204. package/external/libedhoc/include/edhoc_crypto.h +10 -10
  205. package/external/libedhoc/include/edhoc_ead.h +13 -10
  206. package/external/libedhoc/include/edhoc_macros.h +20 -11
  207. package/external/libedhoc/include/edhoc_values.h +2 -2
  208. package/external/libedhoc/library/edhoc.c +70 -36
  209. package/external/libedhoc/library/edhoc_common.c +1314 -0
  210. package/external/libedhoc/library/edhoc_exporter.c +45 -46
  211. package/external/libedhoc/library/edhoc_message_1.c +107 -72
  212. package/external/libedhoc/library/edhoc_message_2.c +396 -1693
  213. package/external/libedhoc/library/edhoc_message_3.c +465 -1656
  214. package/external/libedhoc/library/edhoc_message_4.c +93 -91
  215. package/external/libedhoc/library/edhoc_message_error.c +41 -41
  216. package/external/libedhoc/tests/include/{cipher_suites/cipher_suite_0.h → cipher_suite_0.h} +131 -134
  217. package/external/libedhoc/tests/include/{cipher_suites/cipher_suite_2.h → cipher_suite_2.h} +139 -140
  218. package/external/libedhoc/tests/include/{edhoc_trace_1/test_vector_1.h → test_vector_rfc9529_chapter_2.h} +786 -738
  219. package/external/libedhoc/tests/include/{edhoc_trace_2/test_vector_2.h → test_vector_rfc9529_chapter_3.h} +14 -10
  220. package/external/libedhoc/tests/include/{x509_chain_cs_0/test_vector_x5chain_cs_0.h → test_vector_x5chain_sign_keys_suite_0.h} +137 -140
  221. package/external/libedhoc/tests/include/{x509_chain_cs_2/test_vector_x5chain_cs_2.h → test_vector_x5chain_sign_keys_suite_2.h} +7 -8
  222. package/external/libedhoc/tests/include/{x509_chain_cs_2_static_dh/test_vector_x5chain_cs_2_static_dh.h → test_vector_x5chain_static_dh_keys_suite_2.h} +7 -8
  223. package/external/libedhoc/tests/include/{x509_hash_cs_2/test_vector_x5t_cs_2.h → test_vector_x5t_sign_keys_suite_2.h} +6 -7
  224. package/external/libedhoc/tests/src/{cipher_suites/cipher_suite_0.c → cipher_suite_0.c} +445 -447
  225. package/external/libedhoc/tests/src/{cipher_suites/cipher_suite_2.c → cipher_suite_2.c} +600 -600
  226. package/external/libedhoc/tests/src/module_test_api.c +430 -0
  227. package/external/libedhoc/tests/src/module_test_cipher_suite_0.c +395 -0
  228. package/external/libedhoc/tests/src/module_test_cipher_suite_2.c +392 -0
  229. package/external/libedhoc/tests/src/{error_message/test_edhoc_error_message.c → module_test_error_message.c} +94 -69
  230. package/external/libedhoc/tests/src/module_test_main.c +49 -0
  231. package/external/libedhoc/tests/src/{cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.c → module_test_rfc9528_suites_negotiation.c} +224 -227
  232. package/external/libedhoc/tests/src/module_test_rfc9529_chapter_2.c +2681 -0
  233. package/external/libedhoc/tests/src/module_test_rfc9529_chapter_3.c +1635 -0
  234. package/external/libedhoc/tests/src/module_test_x5chain_sign_keys_suite_0.c +1135 -0
  235. package/external/libedhoc/tests/src/module_test_x5chain_sign_keys_suite_2.c +1249 -0
  236. package/external/libedhoc/tests/src/module_test_x5chain_static_dh_keys_suite_2.c +798 -0
  237. package/external/libedhoc/tests/src/module_test_x5t_sign_keys_suite_2.c +956 -0
  238. package/include/EdhocComposeAsyncWorker.h +8 -6
  239. package/include/EdhocCredentialManager.h +16 -11
  240. package/include/EdhocCryptoManager.h +28 -21
  241. package/include/EdhocEadManager.h +3 -6
  242. package/include/{EdhocExportAsyncWorker.h → EdhocExportOscoreAsyncWorker.h} +20 -17
  243. package/include/EdhocKeyExporterAsyncWorker.h +76 -0
  244. package/include/EdhocKeyUpdateAsyncWorker.h +72 -0
  245. package/include/EdhocProcessAsyncWorker.h +14 -10
  246. package/include/LibEDHOC.h +44 -20
  247. package/include/UserContext.h +7 -9
  248. package/include/Utils.h +31 -27
  249. package/package.json +14 -3
  250. package/prebuilds/android-arm/edhoc.armv7.node +0 -0
  251. package/prebuilds/android-arm64/edhoc.armv8.node +0 -0
  252. package/prebuilds/darwin-arm64/edhoc.node +0 -0
  253. package/prebuilds/darwin-x64/edhoc.node +0 -0
  254. package/prebuilds/linux-arm/edhoc.armv6.node +0 -0
  255. package/prebuilds/linux-arm/edhoc.armv7.node +0 -0
  256. package/prebuilds/linux-arm64/edhoc.armv8.node +0 -0
  257. package/prebuilds/linux-x64/edhoc.glibc.node +0 -0
  258. package/prebuilds/linux-x64/edhoc.musl.node +0 -0
  259. package/prebuilds/win32-ia32/edhoc.node +0 -0
  260. package/prebuilds/win32-x64/edhoc.node +0 -0
  261. package/src/EdhocComposeAsyncWorker.cpp +18 -35
  262. package/src/EdhocCredentialManager.cpp +160 -187
  263. package/src/EdhocCryptoManager.cpp +386 -586
  264. package/src/EdhocEadManager.cpp +10 -18
  265. package/src/EdhocExportOscoreAsyncWorker.cpp +77 -0
  266. package/src/EdhocKeyExporterAsyncWorker.cpp +49 -0
  267. package/src/EdhocKeyUpdateAsyncWorker.cpp +41 -0
  268. package/src/EdhocProcessAsyncWorker.cpp +72 -19
  269. package/src/LibEDHOC.cpp +213 -174
  270. package/src/Suites.cpp +39 -72
  271. package/src/Utils.cpp +32 -56
  272. package/test/basic.test.ts +64 -0
  273. package/test/vectors.test.ts +111 -0
  274. package/dist/credentials.d.ts +0 -16
  275. package/dist/credentials.d.ts.map +0 -1
  276. package/dist/credentials.js +0 -84
  277. package/external/libedhoc/externals/zcbor/include/zcbor_debug.h +0 -69
  278. package/external/libedhoc/tests/include/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.h +0 -37
  279. package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_0.h +0 -48
  280. package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_2.h +0 -48
  281. package/external/libedhoc/tests/include/edhoc_trace_1/authentication_credentials_1.h +0 -60
  282. package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_1.h +0 -208
  283. package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_ead_1.h +0 -59
  284. package/external/libedhoc/tests/include/edhoc_trace_2/authentication_credentials_2.h +0 -60
  285. package/external/libedhoc/tests/include/edhoc_trace_2/test_edhoc_handshake_2.h +0 -199
  286. package/external/libedhoc/tests/include/error_message/test_edhoc_error_message.h +0 -48
  287. package/external/libedhoc/tests/include/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.h +0 -92
  288. package/external/libedhoc/tests/include/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.h +0 -96
  289. package/external/libedhoc/tests/include/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.h +0 -58
  290. package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.h +0 -56
  291. package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.h +0 -57
  292. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.h +0 -59
  293. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.h +0 -57
  294. package/external/libedhoc/tests/include/x509_hash_cs_2/authentication_credentials_x5t_cs_2.h +0 -60
  295. package/external/libedhoc/tests/include/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.h +0 -57
  296. package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_0.c +0 -475
  297. package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_2.c +0 -473
  298. package/external/libedhoc/tests/src/edhoc_trace_1/authentication_credentials_1.c +0 -252
  299. package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_1.c +0 -1829
  300. package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_ead_1.c +0 -1247
  301. package/external/libedhoc/tests/src/edhoc_trace_2/authentication_credentials_2.c +0 -170
  302. package/external/libedhoc/tests/src/edhoc_trace_2/test_edhoc_handshake_2.c +0 -1783
  303. package/external/libedhoc/tests/src/tests.c +0 -228
  304. package/external/libedhoc/tests/src/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.c +0 -332
  305. package/external/libedhoc/tests/src/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.c +0 -936
  306. package/external/libedhoc/tests/src/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.c +0 -166
  307. package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.c +0 -587
  308. package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.c +0 -917
  309. package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.c +0 -186
  310. package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.c +0 -743
  311. package/external/libedhoc/tests/src/x509_hash_cs_2/authentication_credentials_x5t_cs_2.c +0 -261
  312. package/external/libedhoc/tests/src/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.c +0 -854
  313. package/src/EdhocExportAsyncWorker.cpp +0 -82
@@ -1,228 +0,0 @@
1
- /**
2
- * \file tests.c
3
- * \author Kamil Kielbasa
4
- * \brief Entry point for all unit tests.
5
- * \version 0.4
6
- * \date 2024-01-01
7
- *
8
- * \copyright Copyright (c) 2024
9
- *
10
- */
11
-
12
- /* Include files ----------------------------------------------------------- */
13
-
14
- /* Internal test headers: */
15
- #include "cipher_suites/test_cipher_suite_0.h"
16
- #include "cipher_suites/test_cipher_suite_2.h"
17
- #include "edhoc_trace_1/test_edhoc_handshake_1.h"
18
- #include "edhoc_trace_1/test_edhoc_handshake_ead_1.h"
19
- #include "x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.h"
20
- #include "x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.h"
21
- #include "x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.h"
22
- #include "x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.h"
23
- #include "x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.h"
24
- #include "edhoc_trace_2/test_edhoc_handshake_2.h"
25
- #include "error_message/test_edhoc_error_message.h"
26
- #include "cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.h"
27
-
28
- /* Standard library headers:*/
29
- #include <stdio.h>
30
- #include <assert.h>
31
-
32
- /* Crypto header: */
33
- #include <psa/crypto.h>
34
-
35
- /* Module defines ---------------------------------------------------------- */
36
- /* Module types and type definitiones -------------------------------------- */
37
- /* Module interface variables and constants -------------------------------- */
38
- /* Static variables and constants ------------------------------------------ */
39
- /* Static function declarations -------------------------------------------- */
40
- /* Static function definitions --------------------------------------------- */
41
- /* Module interface function definitions ----------------------------------- */
42
-
43
- int main(void)
44
- {
45
- assert(PSA_SUCCESS == psa_crypto_init());
46
-
47
- printf("\n");
48
- printf("test_cipher_suite_0_ecdsa:\n");
49
- test_cipher_suite_0_ecdsa();
50
-
51
- printf("\n");
52
- printf("test_cipher_suite_0_ecdh:\n");
53
- test_cipher_suite_0_ecdh();
54
-
55
- printf("\n");
56
- printf("test_cipher_suite_0_hkdf:\n");
57
- test_cipher_suite_0_hkdf();
58
-
59
- printf("\n");
60
- printf("test_cipher_suite_0_aead:\n");
61
- test_cipher_suite_0_aead();
62
-
63
- printf("\n");
64
- printf("test_cipher_suite_2_ecdsa:\n");
65
- test_cipher_suite_2_ecdsa();
66
-
67
- printf("\n");
68
- printf("test_cipher_suite_2_ecdh:\n");
69
- test_cipher_suite_2_ecdh();
70
-
71
- printf("\n");
72
- printf("test_cipher_suite_2_hkdf:\n");
73
- test_cipher_suite_2_hkdf();
74
-
75
- printf("\n");
76
- printf("test_cipher_suite_2_aead:\n");
77
- test_cipher_suite_2_aead();
78
-
79
- printf("\n");
80
- printf("test_edhoc_handshake_1_message_1_compose:\n");
81
- test_edhoc_handshake_1_message_1_compose();
82
-
83
- printf("\n");
84
- printf("test_edhoc_handshake_1_message_1_process:\n");
85
- test_edhoc_handshake_1_message_1_process();
86
-
87
- printf("\n");
88
- printf("test_edhoc_handshake_1_message_2_compose:\n");
89
- test_edhoc_handshake_1_message_2_compose();
90
-
91
- printf("\n");
92
- printf("test_edhoc_handshake_1_message_2_process:\n");
93
- test_edhoc_handshake_1_message_2_process();
94
-
95
- printf("\n");
96
- printf("test_edhoc_handshake_1_message_3_compose:\n");
97
- test_edhoc_handshake_1_message_3_compose();
98
-
99
- printf("\n");
100
- printf("test_edhoc_handshake_1_message_3_process:\n");
101
- test_edhoc_handshake_1_message_3_process();
102
-
103
- printf("\n");
104
- printf("test_edhoc_handshake_1_message_4_compose:\n");
105
- test_edhoc_handshake_1_message_4_compose();
106
-
107
- printf("\n");
108
- printf("test_edhoc_handshake_1_message_4_process:\n");
109
- test_edhoc_handshake_1_message_4_process();
110
-
111
- printf("\n");
112
- printf("test_edhoc_handshake_1_e2e:\n");
113
- test_edhoc_handshake_1_e2e();
114
-
115
- printf("\n");
116
- printf("test_edhoc_handshake_1_e2e_real_crypto:\n");
117
- test_edhoc_handshake_1_e2e_real_crypto();
118
-
119
- printf("\n");
120
- printf("test_edhoc_handshake_1_e2e_single_ead_token:\n");
121
- test_edhoc_handshake_1_e2e_single_ead_token();
122
-
123
- printf("\n");
124
- printf("test_edhoc_handshake_1_e2e_multiple_ead_tokens:\n");
125
- test_edhoc_handshake_1_e2e_multiple_ead_tokens();
126
-
127
- printf("\n");
128
- printf("test_edhoc_handshake_x5chain_cs_0_single_cert_e2e_real_crypto:\n");
129
- test_edhoc_handshake_x5chain_cs_0_single_cert_e2e_real_crypto();
130
-
131
- printf("\n");
132
- printf("test_edhoc_handshake_x5chain_cs_0_many_certs_e2e_real_crypto:\n");
133
- test_edhoc_handshake_x5chain_cs_0_many_certs_e2e_real_crypto();
134
-
135
- printf("\n");
136
- printf("test_edhoc_handshake_x5chain_cs_2_single_cert_e2e:\n");
137
- test_edhoc_handshake_x5chain_cs_2_single_cert_e2e();
138
-
139
- printf("\n");
140
- printf("test_edhoc_handshake_x5chain_cs_2_single_cert_e2e_multiple_ead_tokens:\n");
141
- test_edhoc_handshake_x5chain_cs_2_single_cert_e2e_multiple_ead_tokens();
142
-
143
- printf("\n");
144
- printf("test_edhoc_handshake_x5chain_cs_2_static_dh_keys_ead_e2e:\n");
145
- test_edhoc_handshake_x5chain_cs_2_static_dh_keys_ead_e2e();
146
-
147
- printf("\n");
148
- printf("test_edhoc_handshake_x5t_cs_2_e2e_single_ead_token:\n");
149
- test_edhoc_handshake_x5t_cs_2_e2e_single_ead_token();
150
-
151
- printf("\n");
152
- printf("test_edhoc_handshake_2_message_1_compose:\n");
153
- test_edhoc_handshake_2_message_1_compose();
154
-
155
- printf("\n");
156
- printf("test_edhoc_handshake_2_message_1_process:\n");
157
- test_edhoc_handshake_2_message_1_process();
158
-
159
- printf("\n");
160
- printf("test_edhoc_handshake_1_message_2_compose:\n");
161
- test_edhoc_handshake_2_message_2_compose();
162
-
163
- printf("\n");
164
- printf("test_edhoc_handshake_2_message_2_process:\n");
165
- test_edhoc_handshake_2_message_2_process();
166
-
167
- printf("\n");
168
- printf("test_edhoc_handshake_2_message_3_compose:\n");
169
- test_edhoc_handshake_2_message_3_compose();
170
-
171
- printf("\n");
172
- printf("test_edhoc_handshake_2_message_3_process:\n");
173
- test_edhoc_handshake_2_message_3_process();
174
-
175
- printf("\n");
176
- printf("test_edhoc_handshake_2_message_4_compose:\n");
177
- test_edhoc_handshake_2_message_4_compose();
178
-
179
- printf("\n");
180
- printf("test_edhoc_handshake_2_message_4_process:\n");
181
- test_edhoc_handshake_2_message_4_process();
182
-
183
- printf("\n");
184
- printf("test_edhoc_handshake_2_e2e:\n");
185
- test_edhoc_handshake_2_e2e();
186
-
187
- printf("\n");
188
- printf("test_edhoc_handshake_2_e2e_real_crypto:\n");
189
- test_edhoc_handshake_2_e2e_real_crypto();
190
-
191
- printf("\n");
192
- printf("test_edhoc_error_message_success:\n");
193
- test_edhoc_error_message_success();
194
-
195
- printf("\n");
196
- printf("test_edhoc_error_message_unspecified_error:\n");
197
- test_edhoc_error_message_unspecified_error();
198
-
199
- printf("\n");
200
- printf("test_edhoc_error_message_wrong_selected_cipher_suite_one:\n");
201
- test_edhoc_error_message_wrong_selected_cipher_suite_one();
202
-
203
- printf("\n");
204
- printf("test_edhoc_error_message_wrong_selected_cipher_suite_many:\n");
205
- test_edhoc_error_message_wrong_selected_cipher_suite_many();
206
-
207
- printf("\n");
208
- printf("test_edhoc_error_message_unknown_credential_referenced:\n");
209
- test_edhoc_error_message_unknown_credential_referenced();
210
-
211
- printf("\n");
212
- printf("test_edhoc_trace_1_prk_exporter:\n");
213
- test_edhoc_trace_1_prk_exporter();
214
-
215
- printf("\n");
216
- printf("test_edhoc_cipher_suites_negotiation_scenario_1:\n");
217
- test_edhoc_cipher_suites_negotiation_scenario_1();
218
-
219
- printf("\n");
220
- printf("test_edhoc_cipher_suites_negotiation_scenario_2:\n");
221
- test_edhoc_cipher_suites_negotiation_scenario_2();
222
-
223
- printf("All tests passed successfully!\n");
224
-
225
- mbedtls_psa_crypto_free();
226
-
227
- return 0;
228
- }
@@ -1,332 +0,0 @@
1
- /**
2
- * \file authentication_credentials_x5chain_cs_0.c
3
- * \author Kamil Kielbasa
4
- * \brief Example implementation of authentication credentials callbacks
5
- * for X.509 chain authentication method for cipher suite 0.
6
- * \version 0.4
7
- * \date 2024-01-01
8
- *
9
- * \copyright Copyright (c) 2024
10
- *
11
- */
12
-
13
- /* Include files ----------------------------------------------------------- */
14
-
15
- /* Internal test headers: */
16
- #include "x509_chain_cs_0/authentication_credentials_x5chain_cs_0.h"
17
- #include "x509_chain_cs_0/test_vector_x5chain_cs_0.h"
18
- #include "cipher_suites/cipher_suite_0.h"
19
-
20
- /* Standard library header: */
21
- #include <string.h>
22
-
23
- /* EDHOC headers: */
24
- #include "edhoc_credentials.h"
25
- #include "edhoc_values.h"
26
- #include "edhoc_macros.h"
27
-
28
- /* Module defines ---------------------------------------------------------- */
29
- /* Module types and type definitiones -------------------------------------- */
30
- /* Module interface variables and constants -------------------------------- */
31
- /* Static variables and constants ------------------------------------------ */
32
- /* Static function declarations -------------------------------------------- */
33
- /* Static function definitions --------------------------------------------- */
34
- /* Module interface function definitions ----------------------------------- */
35
-
36
- int auth_cred_fetch_init_x5chain_cs_0_single_cert(
37
- void *user_ctx, struct edhoc_auth_creds *auth_cred)
38
- {
39
- (void)user_ctx;
40
-
41
- if (NULL == auth_cred)
42
- return EDHOC_ERROR_INVALID_ARGUMENT;
43
-
44
- auth_cred->label = EDHOC_COSE_HEADER_X509_CHAIN;
45
- auth_cred->x509_chain.nr_of_certs = 1;
46
- auth_cred->x509_chain.cert[0] = CRED_I;
47
- auth_cred->x509_chain.cert_len[0] = ARRAY_SIZE(CRED_I);
48
-
49
- const int ret = cipher_suite_0_key_generate(NULL, EDHOC_KT_SIGNATURE,
50
- SK_I, ARRAY_SIZE(SK_I),
51
- auth_cred->priv_key_id);
52
-
53
- if (EDHOC_SUCCESS != ret)
54
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
55
-
56
- return EDHOC_SUCCESS;
57
- }
58
-
59
- int auth_cred_fetch_resp_x5chain_cs_0_single_cert(
60
- void *user_ctx, struct edhoc_auth_creds *auth_cred)
61
- {
62
- (void)user_ctx;
63
-
64
- if (NULL == auth_cred)
65
- return EDHOC_ERROR_INVALID_ARGUMENT;
66
-
67
- auth_cred->label = EDHOC_COSE_HEADER_X509_CHAIN;
68
- auth_cred->x509_chain.nr_of_certs = 1;
69
- auth_cred->x509_chain.cert[0] = CRED_R;
70
- auth_cred->x509_chain.cert_len[0] = ARRAY_SIZE(CRED_R);
71
-
72
- const int ret = cipher_suite_0_key_generate(NULL, EDHOC_KT_SIGNATURE,
73
- SK_R, ARRAY_SIZE(SK_R),
74
- auth_cred->priv_key_id);
75
-
76
- if (EDHOC_SUCCESS != ret)
77
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
78
-
79
- return EDHOC_SUCCESS;
80
- }
81
-
82
- int auth_cred_verify_init_x5chain_cs_0_single_cert(
83
- void *user_ctx, struct edhoc_auth_creds *auth_cred,
84
- const uint8_t **pub_key, size_t *pub_key_len)
85
- {
86
- (void)user_ctx;
87
-
88
- if (NULL == auth_cred || NULL == pub_key || NULL == pub_key_len)
89
- return EDHOC_ERROR_INVALID_ARGUMENT;
90
-
91
- /**
92
- * \brief Verify COSE header label value.
93
- */
94
- if (EDHOC_COSE_HEADER_X509_CHAIN != auth_cred->label)
95
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
96
-
97
- /**
98
- * \brief Verify received number of certificates.
99
- */
100
- if (1 != auth_cred->x509_chain.nr_of_certs)
101
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
102
-
103
- /**
104
- * \brief Verify received peer certificate length.
105
- */
106
- if (auth_cred->x509_chain.cert_len[0] != ARRAY_SIZE(CRED_R))
107
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
108
-
109
- /**
110
- * \brief Verify received peer certificate.
111
- */
112
- if (0 != memcmp(CRED_R, auth_cred->x509_chain.cert[0],
113
- auth_cred->x509_chain.cert_len[0]))
114
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
115
-
116
- /**
117
- * \brief If successful then assign public key.
118
- */
119
- *pub_key = PK_R;
120
- *pub_key_len = ARRAY_SIZE(PK_R);
121
-
122
- return EDHOC_SUCCESS;
123
- }
124
-
125
- int auth_cred_verify_resp_x5chain_cs_0_single_cert(
126
- void *user_ctx, struct edhoc_auth_creds *auth_cred,
127
- const uint8_t **pub_key, size_t *pub_key_len)
128
- {
129
- (void)user_ctx;
130
-
131
- if (NULL == auth_cred || NULL == pub_key || NULL == pub_key_len)
132
- return EDHOC_ERROR_INVALID_ARGUMENT;
133
-
134
- /**
135
- * \brief Verify COSE header label value.
136
- */
137
- if (EDHOC_COSE_HEADER_X509_CHAIN != auth_cred->label)
138
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
139
-
140
- /**
141
- * \brief Verify received number of certificates.
142
- */
143
- if (1 != auth_cred->x509_chain.nr_of_certs)
144
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
145
-
146
- /**
147
- * \brief Verify received peer certificate length.
148
- */
149
- if (auth_cred->x509_chain.cert_len[0] != ARRAY_SIZE(CRED_I))
150
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
151
-
152
- /**
153
- * \brief Verify received peer certificate.
154
- */
155
- if (0 != memcmp(CRED_I, auth_cred->x509_chain.cert[0],
156
- auth_cred->x509_chain.cert_len[0]))
157
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
158
-
159
- /**
160
- * \brief If successful then assign public key.
161
- */
162
- *pub_key = PK_I;
163
- *pub_key_len = ARRAY_SIZE(PK_I);
164
-
165
- return EDHOC_SUCCESS;
166
- }
167
-
168
- int auth_cred_fetch_init_x5chain_cs_0_many_certs(
169
- void *user_ctx, struct edhoc_auth_creds *auth_cred)
170
- {
171
- (void)user_ctx;
172
-
173
- if (NULL == auth_cred)
174
- return EDHOC_ERROR_INVALID_ARGUMENT;
175
-
176
- auth_cred->label = EDHOC_COSE_HEADER_X509_CHAIN;
177
- auth_cred->x509_chain.nr_of_certs = 2;
178
-
179
- auth_cred->x509_chain.cert[0] = CRED_R;
180
- auth_cred->x509_chain.cert_len[0] = ARRAY_SIZE(CRED_R);
181
-
182
- auth_cred->x509_chain.cert[1] = CRED_I;
183
- auth_cred->x509_chain.cert_len[1] = ARRAY_SIZE(CRED_I);
184
-
185
- const int ret = cipher_suite_0_key_generate(NULL, EDHOC_KT_SIGNATURE,
186
- SK_I, ARRAY_SIZE(SK_I),
187
- auth_cred->priv_key_id);
188
-
189
- if (EDHOC_SUCCESS != ret)
190
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
191
-
192
- return EDHOC_SUCCESS;
193
- }
194
-
195
- int auth_cred_fetch_resp_x5chain_cs_0_many_certs(
196
- void *user_ctx, struct edhoc_auth_creds *auth_cred)
197
- {
198
- (void)user_ctx;
199
-
200
- if (NULL == auth_cred)
201
- return EDHOC_ERROR_INVALID_ARGUMENT;
202
-
203
- auth_cred->label = EDHOC_COSE_HEADER_X509_CHAIN;
204
- auth_cred->x509_chain.nr_of_certs = 2;
205
-
206
- auth_cred->x509_chain.cert[0] = CRED_I;
207
- auth_cred->x509_chain.cert_len[0] = ARRAY_SIZE(CRED_I);
208
-
209
- auth_cred->x509_chain.cert[1] = CRED_R;
210
- auth_cred->x509_chain.cert_len[1] = ARRAY_SIZE(CRED_R);
211
-
212
- const int ret = cipher_suite_0_key_generate(NULL, EDHOC_KT_SIGNATURE,
213
- SK_R, ARRAY_SIZE(SK_R),
214
- auth_cred->priv_key_id);
215
-
216
- if (EDHOC_SUCCESS != ret)
217
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
218
-
219
- return EDHOC_SUCCESS;
220
- }
221
-
222
- int auth_cred_verify_init_x5chain_cs_0_many_certs(
223
- void *user_ctx, struct edhoc_auth_creds *auth_cred,
224
- const uint8_t **pub_key, size_t *pub_key_len)
225
- {
226
- (void)user_ctx;
227
-
228
- if (NULL == auth_cred || NULL == pub_key || NULL == pub_key_len)
229
- return EDHOC_ERROR_INVALID_ARGUMENT;
230
-
231
- /**
232
- * \brief Verify COSE header label value.
233
- */
234
- if (EDHOC_COSE_HEADER_X509_CHAIN != auth_cred->label)
235
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
236
-
237
- /**
238
- * \brief Verify received number of certificates.
239
- */
240
- if (2 != auth_cred->x509_chain.nr_of_certs)
241
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
242
-
243
- /**
244
- * \brief Verify received peer certificate length.
245
- */
246
- if (auth_cred->x509_chain.cert_len[0] != ARRAY_SIZE(CRED_I))
247
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
248
-
249
- /**
250
- * \brief Verify received peer certificate.
251
- */
252
- if (0 != memcmp(CRED_I, auth_cred->x509_chain.cert[0],
253
- auth_cred->x509_chain.cert_len[0]))
254
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
255
-
256
- /**
257
- * \brief Verify received peer certificate length.
258
- */
259
- if (auth_cred->x509_chain.cert_len[1] != ARRAY_SIZE(CRED_R))
260
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
261
-
262
- /**
263
- * \brief Verify received peer certificate.
264
- */
265
- if (0 != memcmp(CRED_R, auth_cred->x509_chain.cert[1],
266
- auth_cred->x509_chain.cert_len[1]))
267
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
268
-
269
- /**
270
- * \brief If successful then assign public key.
271
- */
272
- *pub_key = PK_R;
273
- *pub_key_len = ARRAY_SIZE(PK_R);
274
-
275
- return EDHOC_SUCCESS;
276
- }
277
-
278
- int auth_cred_verify_resp_x5chain_cs_0_many_certs(
279
- void *user_ctx, struct edhoc_auth_creds *auth_cred,
280
- const uint8_t **pub_key, size_t *pub_key_len)
281
- {
282
- (void)user_ctx;
283
-
284
- if (NULL == auth_cred || NULL == pub_key || NULL == pub_key_len)
285
- return EDHOC_ERROR_INVALID_ARGUMENT;
286
-
287
- /**
288
- * \brief Verify COSE header label value.
289
- */
290
- if (EDHOC_COSE_HEADER_X509_CHAIN != auth_cred->label)
291
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
292
-
293
- /**
294
- * \brief Verify received number of certificates.
295
- */
296
- if (2 != auth_cred->x509_chain.nr_of_certs)
297
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
298
-
299
- /**
300
- * \brief Verify received peer certificate length.
301
- */
302
- if (auth_cred->x509_chain.cert_len[0] != ARRAY_SIZE(CRED_R))
303
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
304
-
305
- /**
306
- * \brief Verify received peer certificate.
307
- */
308
- if (0 != memcmp(CRED_R, auth_cred->x509_chain.cert[0],
309
- auth_cred->x509_chain.cert_len[0]))
310
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
311
-
312
- /**
313
- * \brief Verify received peer certificate length.
314
- */
315
- if (auth_cred->x509_chain.cert_len[1] != ARRAY_SIZE(CRED_I))
316
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
317
-
318
- /**
319
- * \brief Verify received peer certificate.
320
- */
321
- if (0 != memcmp(CRED_I, auth_cred->x509_chain.cert[1],
322
- auth_cred->x509_chain.cert_len[1]))
323
- return EDHOC_ERROR_CREDENTIALS_FAILURE;
324
-
325
- /**
326
- * \brief If successful then assign public key.
327
- */
328
- *pub_key = PK_I;
329
- *pub_key_len = ARRAY_SIZE(PK_I);
330
-
331
- return EDHOC_SUCCESS;
332
- }