edhoc 1.0.4 → 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 (314) hide show
  1. package/README.md +170 -0
  2. package/binding.gyp +13 -11
  3. package/dist/bindings.d.ts +5 -0
  4. package/dist/bindings.d.ts.map +1 -0
  5. package/dist/bindings.js +10 -0
  6. package/dist/crypto.d.ts +29 -0
  7. package/dist/crypto.d.ts.map +1 -0
  8. package/dist/crypto.js +205 -0
  9. package/dist/edhoc.d.ts +368 -0
  10. package/dist/edhoc.d.ts.map +1 -0
  11. package/dist/edhoc.js +76 -0
  12. package/dist/index.d.ts +4 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +19 -0
  15. package/dist/x509credentials.d.ts +20 -0
  16. package/dist/x509credentials.d.ts.map +1 -0
  17. package/dist/x509credentials.js +140 -0
  18. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_decode.h +1 -1
  19. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_encode.h +1 -1
  20. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_types.h +1 -1
  21. package/external/libedhoc/backends/cbor/include/backend_cbor_ead_decode.h +2 -2
  22. package/external/libedhoc/backends/cbor/include/backend_cbor_ead_encode.h +2 -2
  23. package/external/libedhoc/backends/cbor/include/backend_cbor_edhoc_types.h +48 -43
  24. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_decode.h +1 -1
  25. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_encode.h +1 -1
  26. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_types.h +3 -3
  27. package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_decode.h +1 -1
  28. package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_encode.h +1 -1
  29. package/external/libedhoc/backends/cbor/include/backend_cbor_info_decode.h +1 -1
  30. package/external/libedhoc/backends/cbor/include/backend_cbor_info_encode.h +1 -1
  31. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_decode.h +1 -1
  32. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_encode.h +1 -1
  33. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_types.h +1 -1
  34. package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_decode.h +1 -1
  35. package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_encode.h +1 -1
  36. package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_decode.h +1 -1
  37. package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_encode.h +1 -1
  38. package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_decode.h +1 -1
  39. package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_encode.h +1 -1
  40. package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_decode.h +1 -1
  41. package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_encode.h +1 -1
  42. package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_decode.h +1 -1
  43. package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_encode.h +1 -1
  44. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_decode.h +1 -1
  45. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_encode.h +1 -1
  46. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_decode.h +1 -1
  47. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_encode.h +1 -1
  48. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_decode.h +3 -3
  49. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_encode.h +3 -3
  50. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_decode.h +1 -1
  51. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_encode.h +1 -1
  52. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_types.h +4 -4
  53. package/external/libedhoc/backends/cbor/include/backend_cbor_x509_types.h +93 -83
  54. package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_decode.c +11 -20
  55. package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_encode.c +11 -20
  56. package/external/libedhoc/backends/cbor/src/backend_cbor_ead_decode.c +27 -32
  57. package/external/libedhoc/backends/cbor/src/backend_cbor_ead_encode.c +27 -32
  58. package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_decode.c +14 -23
  59. package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_encode.c +14 -23
  60. package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_decode.c +63 -52
  61. package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_encode.c +62 -51
  62. package/external/libedhoc/backends/cbor/src/backend_cbor_info_decode.c +14 -23
  63. package/external/libedhoc/backends/cbor/src/backend_cbor_info_encode.c +14 -23
  64. package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_decode.c +11 -20
  65. package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_encode.c +11 -20
  66. package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_decode.c +54 -51
  67. package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_encode.c +54 -51
  68. package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_decode.c +11 -20
  69. package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_encode.c +11 -20
  70. package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_decode.c +11 -20
  71. package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_encode.c +11 -20
  72. package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_decode.c +11 -20
  73. package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_encode.c +11 -20
  74. package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_decode.c +36 -37
  75. package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_encode.c +36 -37
  76. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_decode.c +103 -80
  77. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_encode.c +102 -79
  78. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_decode.c +99 -76
  79. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_encode.c +98 -75
  80. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_decode.c +40 -41
  81. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_encode.c +40 -41
  82. package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_decode.c +15 -24
  83. package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_encode.c +15 -24
  84. package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode.c +31 -0
  85. package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode.h +10 -0
  86. package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode2.c +18 -0
  87. package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode2.h +9 -0
  88. package/external/libedhoc/externals/Unity/examples/example_1/test/TestProductionCode.c +69 -0
  89. package/external/libedhoc/externals/Unity/examples/example_1/test/TestProductionCode2.c +38 -0
  90. package/external/libedhoc/externals/Unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
  91. package/external/libedhoc/externals/Unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
  92. package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode.c +31 -0
  93. package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode.h +10 -0
  94. package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode2.c +18 -0
  95. package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode2.h +9 -0
  96. package/external/libedhoc/externals/Unity/examples/example_2/test/TestProductionCode.c +71 -0
  97. package/external/libedhoc/externals/Unity/examples/example_2/test/TestProductionCode2.c +40 -0
  98. package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +16 -0
  99. package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +18 -0
  100. package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/all_tests.c +19 -0
  101. package/external/libedhoc/externals/Unity/examples/example_3/helper/UnityHelper.c +17 -0
  102. package/external/libedhoc/externals/Unity/examples/example_3/helper/UnityHelper.h +19 -0
  103. package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode.c +31 -0
  104. package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode.h +10 -0
  105. package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode2.c +18 -0
  106. package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode2.h +9 -0
  107. package/external/libedhoc/externals/Unity/examples/example_3/test/TestProductionCode.c +69 -0
  108. package/external/libedhoc/externals/Unity/examples/example_3/test/TestProductionCode2.c +38 -0
  109. package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode.c +31 -0
  110. package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode.h +10 -0
  111. package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode2.c +18 -0
  112. package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode2.h +9 -0
  113. package/external/libedhoc/externals/Unity/examples/example_4/test/TestProductionCode.c +70 -0
  114. package/external/libedhoc/externals/Unity/examples/example_4/test/TestProductionCode2.c +42 -0
  115. package/external/libedhoc/externals/Unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -0
  116. package/external/libedhoc/externals/Unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -0
  117. package/external/libedhoc/externals/Unity/examples/unity_config.h +251 -0
  118. package/external/libedhoc/externals/Unity/extras/bdd/src/unity_bdd.h +44 -0
  119. package/external/libedhoc/externals/Unity/extras/bdd/test/test_bdd.c +129 -0
  120. package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture.c +310 -0
  121. package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture.h +95 -0
  122. package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture_internals.h +51 -0
  123. package/external/libedhoc/externals/Unity/extras/fixture/test/main/AllTests.c +20 -0
  124. package/external/libedhoc/externals/Unity/extras/fixture/test/template_fixture_tests.c +40 -0
  125. package/external/libedhoc/externals/Unity/extras/fixture/test/unity_fixture_Test.c +246 -0
  126. package/external/libedhoc/externals/Unity/extras/fixture/test/unity_fixture_TestRunner.c +33 -0
  127. package/external/libedhoc/externals/Unity/extras/memory/src/unity_memory.c +203 -0
  128. package/external/libedhoc/externals/Unity/extras/memory/src/unity_memory.h +61 -0
  129. package/external/libedhoc/externals/Unity/extras/memory/test/unity_memory_Test.c +326 -0
  130. package/external/libedhoc/externals/Unity/extras/memory/test/unity_memory_TestRunner.c +50 -0
  131. package/external/libedhoc/externals/Unity/extras/memory/test/unity_output_Spy.c +57 -0
  132. package/external/libedhoc/externals/Unity/extras/memory/test/unity_output_Spy.h +17 -0
  133. package/external/libedhoc/externals/Unity/src/unity.c +2501 -0
  134. package/external/libedhoc/externals/Unity/src/unity.h +698 -0
  135. package/external/libedhoc/externals/Unity/src/unity_internals.h +1183 -0
  136. package/external/libedhoc/externals/Unity/test/expectdata/testsample_cmd.c +61 -0
  137. package/external/libedhoc/externals/Unity/test/expectdata/testsample_def.c +57 -0
  138. package/external/libedhoc/externals/Unity/test/expectdata/testsample_head1.c +55 -0
  139. package/external/libedhoc/externals/Unity/test/expectdata/testsample_head1.h +15 -0
  140. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_cmd.c +80 -0
  141. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_def.c +76 -0
  142. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_head1.c +75 -0
  143. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_head1.h +13 -0
  144. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_new1.c +89 -0
  145. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_new2.c +89 -0
  146. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_param.c +77 -0
  147. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_run1.c +89 -0
  148. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_run2.c +89 -0
  149. package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_yaml.c +90 -0
  150. package/external/libedhoc/externals/Unity/test/expectdata/testsample_new1.c +67 -0
  151. package/external/libedhoc/externals/Unity/test/expectdata/testsample_new2.c +70 -0
  152. package/external/libedhoc/externals/Unity/test/expectdata/testsample_param.c +58 -0
  153. package/external/libedhoc/externals/Unity/test/expectdata/testsample_run1.c +67 -0
  154. package/external/libedhoc/externals/Unity/test/expectdata/testsample_run2.c +70 -0
  155. package/external/libedhoc/externals/Unity/test/expectdata/testsample_yaml.c +71 -0
  156. package/external/libedhoc/externals/Unity/test/testdata/CException.h +18 -0
  157. package/external/libedhoc/externals/Unity/test/testdata/Defs.h +16 -0
  158. package/external/libedhoc/externals/Unity/test/testdata/cmock.h +21 -0
  159. package/external/libedhoc/externals/Unity/test/testdata/mockMock.h +20 -0
  160. package/external/libedhoc/externals/Unity/test/testdata/testRunnerGenerator.c +204 -0
  161. package/external/libedhoc/externals/Unity/test/testdata/testRunnerGeneratorSmall.c +73 -0
  162. package/external/libedhoc/externals/Unity/test/testdata/testRunnerGeneratorWithMocks.c +200 -0
  163. package/external/libedhoc/externals/Unity/test/tests/self_assessment_utils.h +151 -0
  164. package/external/libedhoc/externals/Unity/test/tests/test_unity_arrays.c +2941 -0
  165. package/external/libedhoc/externals/Unity/test/tests/test_unity_core.c +375 -0
  166. package/external/libedhoc/externals/Unity/test/tests/test_unity_doubles.c +1285 -0
  167. package/external/libedhoc/externals/Unity/test/tests/test_unity_floats.c +1395 -0
  168. package/external/libedhoc/externals/Unity/test/tests/test_unity_integers.c +2863 -0
  169. package/external/libedhoc/externals/Unity/test/tests/test_unity_integers_64.c +783 -0
  170. package/external/libedhoc/externals/Unity/test/tests/test_unity_memory.c +82 -0
  171. package/external/libedhoc/externals/Unity/test/tests/test_unity_parameterized.c +309 -0
  172. package/external/libedhoc/externals/Unity/test/tests/test_unity_parameterizedDemo.c +28 -0
  173. package/external/libedhoc/externals/Unity/test/tests/test_unity_strings.c +330 -0
  174. package/external/libedhoc/externals/Unity/test/tests/types_for_test.h +21 -0
  175. package/external/libedhoc/externals/zcbor/include/zcbor_common.h +147 -60
  176. package/external/libedhoc/externals/zcbor/include/zcbor_decode.h +291 -202
  177. package/external/libedhoc/externals/zcbor/include/zcbor_encode.h +100 -156
  178. package/external/libedhoc/externals/zcbor/include/zcbor_print.h +165 -0
  179. package/external/libedhoc/externals/zcbor/samples/hello_world/src/main.c +1 -1
  180. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_decode.h +1 -1
  181. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_encode.h +1 -1
  182. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_types.h +4 -4
  183. package/external/libedhoc/externals/zcbor/samples/pet/src/main.c +4 -4
  184. package/external/libedhoc/externals/zcbor/samples/pet/src/pet_decode.c +15 -24
  185. package/external/libedhoc/externals/zcbor/samples/pet/src/pet_encode.c +14 -23
  186. package/external/libedhoc/externals/zcbor/src/zcbor_common.c +202 -29
  187. package/external/libedhoc/externals/zcbor/src/zcbor_decode.c +633 -173
  188. package/external/libedhoc/externals/zcbor/src/zcbor_encode.c +71 -184
  189. package/external/libedhoc/externals/zcbor/tests/decode/test1_suit_old_formats/src/main.c +152 -153
  190. package/external/libedhoc/externals/zcbor/tests/decode/test2_suit/src/main.c +64 -64
  191. package/external/libedhoc/externals/zcbor/tests/decode/test3_simple/src/main.c +15 -16
  192. package/external/libedhoc/externals/zcbor/tests/decode/test5_corner_cases/src/main.c +228 -84
  193. package/external/libedhoc/externals/zcbor/tests/decode/test7_suit9_simple/src/main.c +9 -9
  194. package/external/libedhoc/externals/zcbor/tests/decode/test8_suit12/src/main.c +0 -1
  195. package/external/libedhoc/externals/zcbor/tests/decode/test9_manifest14/src/main.c +172 -173
  196. package/external/libedhoc/externals/zcbor/tests/encode/test1_suit/src/main.c +73 -73
  197. package/external/libedhoc/externals/zcbor/tests/encode/test2_simple/src/main.c +1 -2
  198. package/external/libedhoc/externals/zcbor/tests/encode/test3_corner_cases/src/main.c +83 -56
  199. package/external/libedhoc/externals/zcbor/tests/encode/test4_senml/src/main.c +15 -16
  200. package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_everything.c +12 -0
  201. package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_manifest12.c +69 -69
  202. package/external/libedhoc/externals/zcbor/tests/unit/test1_unit_tests/src/main.c +448 -55
  203. package/external/libedhoc/externals/zcbor/tests/unit/test3_float16/src/main.c +49 -48
  204. package/external/libedhoc/include/edhoc.h +348 -54
  205. package/external/libedhoc/include/edhoc_common.h +289 -0
  206. package/external/libedhoc/include/edhoc_context.h +60 -35
  207. package/external/libedhoc/include/edhoc_credentials.h +55 -7
  208. package/external/libedhoc/include/edhoc_crypto.h +10 -10
  209. package/external/libedhoc/include/edhoc_ead.h +13 -10
  210. package/external/libedhoc/include/edhoc_macros.h +20 -11
  211. package/external/libedhoc/include/edhoc_values.h +2 -2
  212. package/external/libedhoc/library/edhoc.c +70 -36
  213. package/external/libedhoc/library/edhoc_common.c +1314 -0
  214. package/external/libedhoc/library/edhoc_exporter.c +45 -46
  215. package/external/libedhoc/library/edhoc_message_1.c +107 -72
  216. package/external/libedhoc/library/edhoc_message_2.c +396 -1693
  217. package/external/libedhoc/library/edhoc_message_3.c +465 -1656
  218. package/external/libedhoc/library/edhoc_message_4.c +93 -91
  219. package/external/libedhoc/library/edhoc_message_error.c +41 -41
  220. package/external/libedhoc/tests/include/{cipher_suites/cipher_suite_0.h → cipher_suite_0.h} +131 -134
  221. package/external/libedhoc/tests/include/{cipher_suites/cipher_suite_2.h → cipher_suite_2.h} +139 -140
  222. package/external/libedhoc/tests/include/{edhoc_trace_1/test_vector_1.h → test_vector_rfc9529_chapter_2.h} +786 -738
  223. package/external/libedhoc/tests/include/{edhoc_trace_2/test_vector_2.h → test_vector_rfc9529_chapter_3.h} +14 -10
  224. 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
  225. 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
  226. 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
  227. 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
  228. package/external/libedhoc/tests/src/{cipher_suites/cipher_suite_0.c → cipher_suite_0.c} +445 -447
  229. package/external/libedhoc/tests/src/{cipher_suites/cipher_suite_2.c → cipher_suite_2.c} +600 -600
  230. package/external/libedhoc/tests/src/module_test_api.c +430 -0
  231. package/external/libedhoc/tests/src/module_test_cipher_suite_0.c +395 -0
  232. package/external/libedhoc/tests/src/module_test_cipher_suite_2.c +392 -0
  233. package/external/libedhoc/tests/src/{error_message/test_edhoc_error_message.c → module_test_error_message.c} +94 -69
  234. package/external/libedhoc/tests/src/module_test_main.c +49 -0
  235. package/external/libedhoc/tests/src/{cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.c → module_test_rfc9528_suites_negotiation.c} +224 -227
  236. package/external/libedhoc/tests/src/module_test_rfc9529_chapter_2.c +2681 -0
  237. package/external/libedhoc/tests/src/module_test_rfc9529_chapter_3.c +1635 -0
  238. package/external/libedhoc/tests/src/module_test_x5chain_sign_keys_suite_0.c +1135 -0
  239. package/external/libedhoc/tests/src/module_test_x5chain_sign_keys_suite_2.c +1249 -0
  240. package/external/libedhoc/tests/src/module_test_x5chain_static_dh_keys_suite_2.c +798 -0
  241. package/external/libedhoc/tests/src/module_test_x5t_sign_keys_suite_2.c +956 -0
  242. package/include/EdhocComposeAsyncWorker.h +8 -6
  243. package/include/EdhocCredentialManager.h +16 -11
  244. package/include/EdhocCryptoManager.h +28 -21
  245. package/include/EdhocEadManager.h +3 -6
  246. package/include/{EdhocExportAsyncWorker.h → EdhocExportOscoreAsyncWorker.h} +20 -17
  247. package/include/EdhocKeyExporterAsyncWorker.h +76 -0
  248. package/include/EdhocKeyUpdateAsyncWorker.h +72 -0
  249. package/include/EdhocProcessAsyncWorker.h +14 -10
  250. package/include/LibEDHOC.h +44 -20
  251. package/include/UserContext.h +7 -9
  252. package/include/Utils.h +31 -27
  253. package/package.json +14 -3
  254. package/prebuilds/android-arm/edhoc.armv7.node +0 -0
  255. package/prebuilds/android-arm64/edhoc.armv8.node +0 -0
  256. package/prebuilds/darwin-arm64/edhoc.node +0 -0
  257. package/prebuilds/darwin-x64/edhoc.node +0 -0
  258. package/prebuilds/linux-arm/edhoc.armv6.node +0 -0
  259. package/prebuilds/linux-arm/edhoc.armv7.node +0 -0
  260. package/prebuilds/linux-arm64/edhoc.armv8.node +0 -0
  261. package/prebuilds/linux-x64/edhoc.glibc.node +0 -0
  262. package/prebuilds/linux-x64/edhoc.musl.node +0 -0
  263. package/prebuilds/win32-ia32/edhoc.node +0 -0
  264. package/prebuilds/win32-x64/edhoc.node +0 -0
  265. package/src/EdhocComposeAsyncWorker.cpp +18 -35
  266. package/src/EdhocCredentialManager.cpp +160 -187
  267. package/src/EdhocCryptoManager.cpp +386 -586
  268. package/src/EdhocEadManager.cpp +10 -18
  269. package/src/EdhocExportOscoreAsyncWorker.cpp +77 -0
  270. package/src/EdhocKeyExporterAsyncWorker.cpp +49 -0
  271. package/src/EdhocKeyUpdateAsyncWorker.cpp +41 -0
  272. package/src/EdhocProcessAsyncWorker.cpp +72 -19
  273. package/src/LibEDHOC.cpp +213 -174
  274. package/src/Suites.cpp +39 -72
  275. package/src/Utils.cpp +32 -56
  276. package/test/basic.test.ts +64 -0
  277. package/test/vectors.test.ts +111 -0
  278. package/external/libedhoc/externals/zcbor/include/zcbor_debug.h +0 -69
  279. package/external/libedhoc/tests/include/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.h +0 -37
  280. package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_0.h +0 -48
  281. package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_2.h +0 -48
  282. package/external/libedhoc/tests/include/edhoc_trace_1/authentication_credentials_1.h +0 -60
  283. package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_1.h +0 -208
  284. package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_ead_1.h +0 -59
  285. package/external/libedhoc/tests/include/edhoc_trace_2/authentication_credentials_2.h +0 -60
  286. package/external/libedhoc/tests/include/edhoc_trace_2/test_edhoc_handshake_2.h +0 -199
  287. package/external/libedhoc/tests/include/error_message/test_edhoc_error_message.h +0 -48
  288. package/external/libedhoc/tests/include/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.h +0 -92
  289. package/external/libedhoc/tests/include/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.h +0 -96
  290. package/external/libedhoc/tests/include/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.h +0 -58
  291. package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.h +0 -56
  292. package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.h +0 -57
  293. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.h +0 -59
  294. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.h +0 -57
  295. package/external/libedhoc/tests/include/x509_hash_cs_2/authentication_credentials_x5t_cs_2.h +0 -60
  296. package/external/libedhoc/tests/include/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.h +0 -57
  297. package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_0.c +0 -475
  298. package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_2.c +0 -473
  299. package/external/libedhoc/tests/src/edhoc_trace_1/authentication_credentials_1.c +0 -252
  300. package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_1.c +0 -1829
  301. package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_ead_1.c +0 -1247
  302. package/external/libedhoc/tests/src/edhoc_trace_2/authentication_credentials_2.c +0 -170
  303. package/external/libedhoc/tests/src/edhoc_trace_2/test_edhoc_handshake_2.c +0 -1783
  304. package/external/libedhoc/tests/src/tests.c +0 -228
  305. package/external/libedhoc/tests/src/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.c +0 -332
  306. package/external/libedhoc/tests/src/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.c +0 -936
  307. package/external/libedhoc/tests/src/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.c +0 -166
  308. package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.c +0 -587
  309. package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.c +0 -917
  310. package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.c +0 -186
  311. package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.c +0 -743
  312. package/external/libedhoc/tests/src/x509_hash_cs_2/authentication_credentials_x5t_cs_2.c +0 -261
  313. package/external/libedhoc/tests/src/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.c +0 -854
  314. 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
- }