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
@@ -2,8 +2,8 @@
2
2
  * \file edhoc.h
3
3
  * \author Kamil Kielbasa
4
4
  * \brief EDHOC API.
5
- * \version 0.4
6
- * \date 2024-01-01
5
+ * \version 0.6
6
+ * \date 2024-08-05
7
7
  *
8
8
  * \copyright Copyright (c) 2024
9
9
  *
@@ -37,7 +37,7 @@
37
37
  #define EDHOC_API_VERSION_MAJOR 1
38
38
 
39
39
  /** The minor version of this implementation of the EDHOC API. */
40
- #define EDHOC_API_VERSION_MINOR 0
40
+ #define EDHOC_API_VERSION_MINOR 4
41
41
 
42
42
  /**@}*/
43
43
 
@@ -55,7 +55,10 @@
55
55
  *
56
56
  * \param[in,out] edhoc_context EDHOC context.
57
57
  *
58
- * \return EDHOC_SUCCESS on success, otherwise failure.
58
+ * \retval #EDHOC_SUCCESS
59
+ * Success.
60
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
61
+ * Input parameter is recognized as invalid.
59
62
  */
60
63
  int edhoc_context_init(struct edhoc_context *edhoc_context);
61
64
 
@@ -64,29 +67,52 @@ int edhoc_context_init(struct edhoc_context *edhoc_context);
64
67
  *
65
68
  * \param[in,out] edhoc_context EDHOC context.
66
69
  *
67
- * \return EDHOC_SUCCESS on success, otherwise failure.
70
+ * \retval #EDHOC_SUCCESS
71
+ * Success.
72
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
73
+ * Input parameter is recognized as invalid.
74
+ * \retval #EDHOC_ERROR_BAD_STATE
75
+ * Internal context state is incorrect.
68
76
  */
69
77
  int edhoc_context_deinit(struct edhoc_context *edhoc_context);
70
78
 
71
79
  /**
72
- * \brief Set EDHOC method.
80
+ * \brief Set EDHOC methods.
73
81
  *
74
- * \param[in,out] edhoc_context EDHOC context.
75
- * \param method EDHOC method.
82
+ * According to RFC 9528: 3.2. Method. It is required to set at least one method
83
+ * but no more than \p EDHOC_METHOD_MAX.
84
+ *
85
+ * Depends on processing side:
86
+ * - Initiator will always read first value (method[0]) in message 1 compose.
87
+ * - Responder will iterator over all method and try to match in message 1 process.
76
88
  *
77
- * \return EDHOC_SUCCESS on success, otherwise failure.
89
+ * \param[in,out] edhoc_context EDHOC context.
90
+ * \param[in] method EDHOC method.
91
+ * \param method_length Number of the \p method.
92
+ *
93
+ * \retval #EDHOC_SUCCESS
94
+ * Success.
95
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
96
+ * Combination of input parameters are recognized as invalid.
97
+ * \retval #EDHOC_ERROR_BAD_STATE
98
+ * Internal context state is incorrect.
78
99
  */
79
- int edhoc_set_method(struct edhoc_context *edhoc_context,
80
- enum edhoc_method method);
100
+ int edhoc_set_methods(struct edhoc_context *edhoc_context,
101
+ const enum edhoc_method *method, size_t method_length);
81
102
 
82
103
  /**
83
- * \brief Set EDHOC supproted cipher suites.
104
+ * \brief Set EDHOC cipher suites.
84
105
  *
85
106
  * \param[in,out] edhoc_context EDHOC context.
86
107
  * \param[in] cipher_suite EDHOC cipher suites.
87
108
  * \param cipher_suite_length Number of the \p cipher_suite.
88
109
  *
89
- * \return EDHOC_SUCCESS on success, otherwise failure.
110
+ * \retval #EDHOC_SUCCESS
111
+ * Success.
112
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
113
+ * Combination of input parameters are recognized as invalid.
114
+ * \retval #EDHOC_ERROR_BAD_STATE
115
+ * Internal context state is incorrect.
90
116
  */
91
117
  int edhoc_set_cipher_suites(struct edhoc_context *edhoc_context,
92
118
  const struct edhoc_cipher_suite *cipher_suite,
@@ -98,10 +124,15 @@ int edhoc_set_cipher_suites(struct edhoc_context *edhoc_context,
98
124
  * \param[in,out] edhoc_context EDHOC context.
99
125
  * \param[in] connection_id EDHOC connection identifier.
100
126
  *
101
- * \return EDHOC_SUCCESS on success, otherwise failure.
127
+ * \retval #EDHOC_SUCCESS
128
+ * Success.
129
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
130
+ * Combination of input parameters are recognized as invalid.
131
+ * \retval #EDHOC_ERROR_BAD_STATE
132
+ * Internal context state is incorrect.
102
133
  */
103
134
  int edhoc_set_connection_id(struct edhoc_context *edhoc_context,
104
- struct edhoc_connection_id connection_id);
135
+ const struct edhoc_connection_id *connection_id);
105
136
 
106
137
  /**
107
138
  * \brief Set user context.
@@ -109,7 +140,12 @@ int edhoc_set_connection_id(struct edhoc_context *edhoc_context,
109
140
  * \param[in,out] edhoc_context EDHOC context.
110
141
  * \param[in] user_context User context.
111
142
  *
112
- * \return EDHOC_SUCCESS on success, otherwise failure.
143
+ * \retval #EDHOC_SUCCESS
144
+ * Success.
145
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
146
+ * Combination of input parameters are recognized as invalid.
147
+ * \retval #EDHOC_ERROR_BAD_STATE
148
+ * Internal context state is incorrect.
113
149
  */
114
150
  int edhoc_set_user_context(struct edhoc_context *edhoc_context,
115
151
  void *user_context);
@@ -118,44 +154,65 @@ int edhoc_set_user_context(struct edhoc_context *edhoc_context,
118
154
  * \brief Bind EDHOC external authorization data (EAD) callbacks.
119
155
  *
120
156
  * \param[in,out] edhoc_context EDHOC context.
121
- * \param ead EDHOC EAD structure with callbacks.
122
- *
123
- * \return EDHOC_SUCCESS on success, otherwise failure.
157
+ * \param[in] ead EDHOC EAD structure with callbacks.
158
+ *
159
+ * \retval #EDHOC_SUCCESS
160
+ * Success.
161
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
162
+ * Combination of input parameters are recognized as invalid.
163
+ * \retval #EDHOC_ERROR_BAD_STATE
164
+ * Internal context state is incorrect.
124
165
  */
125
- int edhoc_bind_ead(struct edhoc_context *edhoc_context, struct edhoc_ead ead);
166
+ int edhoc_bind_ead(struct edhoc_context *edhoc_context,
167
+ const struct edhoc_ead *ead);
126
168
 
127
169
  /**
128
170
  * \brief Bind EDHOC cryptographic keys callbacks.
129
171
  *
130
172
  * \param[in,out] edhoc_context EDHOC context.
131
- * \param keys EDHOC cryptographic keys structure with callbacks.
132
- *
133
- * \return EDHOC_SUCCESS on success, otherwise failure.
173
+ * \param[in] keys EDHOC cryptographic keys structure with callbacks.
174
+ *
175
+ * \retval #EDHOC_SUCCESS
176
+ * Success.
177
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
178
+ * Combination of input parameters are recognized as invalid.
179
+ * \retval #EDHOC_ERROR_BAD_STATE
180
+ * Internal context state is incorrect.
134
181
  */
135
182
  int edhoc_bind_keys(struct edhoc_context *edhoc_context,
136
- struct edhoc_keys keys);
183
+ const struct edhoc_keys *keys);
137
184
 
138
185
  /**
139
186
  * \brief Bind EDHOC cryptographic operations callbacks.
140
187
  *
141
188
  * \param[in,out] edhoc_context EDHOC context.
142
- * \param crypto EDHOC cryptographic operations structure with callbacks.
143
- *
144
- * \return EDHOC_SUCCESS on success, otherwise failure.
189
+ * \param[in] crypto EDHOC cryptographic operations structure with callbacks.
190
+ *
191
+ * \retval #EDHOC_SUCCESS
192
+ * Success.
193
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
194
+ * Combination of input parameters are recognized as invalid.
195
+ * \retval #EDHOC_ERROR_BAD_STATE
196
+ * Internal context state is incorrect.
145
197
  */
146
198
  int edhoc_bind_crypto(struct edhoc_context *edhoc_context,
147
- struct edhoc_crypto crypto);
199
+ const struct edhoc_crypto *crypto);
148
200
 
149
201
  /**
150
202
  * \brief Bind EDHOC authentication credentials callbacks.
151
203
  *
152
204
  * \param[in,out] edhoc_context EDHOC context.
153
- * \param credentials EDHOC authentication credentials structure with callbacks.
154
- *
155
- * \return EDHOC_SUCCESS on success, otherwise failure.
205
+ * \param[in] credentials EDHOC authentication credentials structure with callbacks.
206
+ *
207
+ * \retval #EDHOC_SUCCESS
208
+ * Success.
209
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
210
+ * Combination of input parameters are recognized as invalid.
211
+ * \retval #EDHOC_ERROR_BAD_STATE
212
+ * Internal context state is incorrect.
156
213
  */
157
214
  int edhoc_bind_credentials(struct edhoc_context *edhoc_context,
158
- struct edhoc_credentials credentials);
215
+ const struct edhoc_credentials *credentials);
159
216
 
160
217
  /**@}*/
161
218
 
@@ -171,7 +228,22 @@ int edhoc_bind_credentials(struct edhoc_context *edhoc_context,
171
228
  * \param message_1_size Size of the \p message_1 buffer in bytes.
172
229
  * \param[out] message_1_length On success, the number of bytes that make up the message 1.
173
230
  *
174
- * \return EDHOC_SUCCESS on success, otherwise failure.
231
+ * \retval #EDHOC_SUCCESS
232
+ * Success.
233
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
234
+ * Combination of input parameters are recognized as invalid.
235
+ * \retval #EDHOC_ERROR_BAD_STATE
236
+ * Internal context state is incorrect.
237
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
238
+ * Processing code branch is not permitted by implementation.
239
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
240
+ * CBOR encoding failure.
241
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
242
+ * Cryptographics operation failure.
243
+ * \retval #EDHOC_ERROR_EPHEMERAL_DIFFIE_HELLMAN_FAILURE
244
+ * Ephemeral Diffie-Hellman key pair or agreement failure.
245
+ * \retval #EDHOC_ERROR_EAD_COMPOSE_FAILURE
246
+ * External authorization data compose failure.
175
247
  */
176
248
  int edhoc_message_1_compose(struct edhoc_context *edhoc_context,
177
249
  uint8_t *message_1, size_t message_1_size,
@@ -184,7 +256,24 @@ int edhoc_message_1_compose(struct edhoc_context *edhoc_context,
184
256
  * \param[in] message_1 Buffer containing the message 1.
185
257
  * \param message_1_length Size of the \p message_1 buffer in bytes.
186
258
  *
187
- * \return EDHOC_SUCCESS on success, otherwise failure.
259
+ * \retval #EDHOC_SUCCESS
260
+ * Success.
261
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
262
+ * Combination of input parameters are recognized as invalid.
263
+ * \retval #EDHOC_ERROR_BAD_STATE
264
+ * Internal context state is incorrect.
265
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
266
+ * Processing code branch is not permitted by implementation.
267
+ * \retval #EDHOC_ERROR_BUFFER_TOO_SMALL
268
+ * Used buffer is too small.
269
+ * \retval #EDHOC_ERROR_MSG_1_PROCESS_FAILURE
270
+ * Error on EDHOC layer during processing.
271
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
272
+ * CBOR decoding failure.
273
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
274
+ * Cryptographics operation failure.
275
+ * \retval #EDHOC_ERROR_EAD_PROCESS_FAILURE
276
+ * External authorization data process failure.
188
277
  */
189
278
  int edhoc_message_1_process(struct edhoc_context *edhoc_context,
190
279
  const uint8_t *message_1, size_t message_1_length);
@@ -197,7 +286,30 @@ int edhoc_message_1_process(struct edhoc_context *edhoc_context,
197
286
  * \param message_2_size Size of the \p message_2 buffer in bytes.
198
287
  * \param[out] message_2_length On success, the number of bytes that make up the message 2.
199
288
  *
200
- * \return EDHOC_SUCCESS on success, otherwise failure.
289
+ * \retval #EDHOC_SUCCESS
290
+ * Success.
291
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
292
+ * Combination of input parameters are recognized as invalid.
293
+ * \retval #EDHOC_ERROR_BAD_STATE
294
+ * Internal context state is incorrect.
295
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
296
+ * Processing code branch is not permitted by implementation.
297
+ * \retval #EDHOC_ERROR_BUFFER_TOO_SMALL
298
+ * Used buffer is too small.
299
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
300
+ * CBOR encoding failure.
301
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
302
+ * Cryptographics operation failure.
303
+ * \retval #EDHOC_ERROR_TRANSCRIPT_HASH_FAILURE
304
+ * Computation of transcript hash failure.
305
+ * \retval #EDHOC_ERROR_PSEUDORANDOM_KEY_FAILURE
306
+ * Computation of pseudorandom key failure.
307
+ * \retval #EDHOC_ERROR_EPHEMERAL_DIFFIE_HELLMAN_FAILURE
308
+ * Ephemeral Diffie-Hellman key pair or agreement failure.
309
+ * \retval #EDHOC_ERROR_CREDENTIALS_FAILURE
310
+ * Authentication credentials fetch/verify failure.
311
+ * \retval #EDHOC_ERROR_EAD_COMPOSE_FAILURE
312
+ * External authorization data compose failure.
201
313
  */
202
314
  int edhoc_message_2_compose(struct edhoc_context *edhoc_context,
203
315
  uint8_t *message_2, size_t message_2_size,
@@ -210,7 +322,36 @@ int edhoc_message_2_compose(struct edhoc_context *edhoc_context,
210
322
  * \param[in] message_2 Buffer containing the message 2.
211
323
  * \param message_2_length Size of the \p message_2 buffer in bytes.
212
324
  *
213
- * \return EDHOC_SUCCESS on success, otherwise failure.
325
+ * \retval #EDHOC_SUCCESS
326
+ * Success.
327
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
328
+ * Combination of input parameters are recognized as invalid.
329
+ * \retval #EDHOC_ERROR_BAD_STATE
330
+ * Internal context state is incorrect.
331
+ * \retval #EDHOC_ERROR_BUFFER_TOO_SMALL
332
+ * Used buffer is too small.
333
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
334
+ * Processing code branch is not permitted by implementation.
335
+ * \retval #EDHOC_ERROR_MSG_2_PROCESS_FAILURE
336
+ * Error on EDHOC layer during processing.
337
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
338
+ * CBOR decoding failure.
339
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
340
+ * Cryptographics operation failure.
341
+ * \retval #EDHOC_ERROR_TRANSCRIPT_HASH_FAILURE
342
+ * Computation of transcript hash failure.
343
+ * \retval #EDHOC_ERROR_PSEUDORANDOM_KEY_FAILURE
344
+ * Computation of pseudorandom key failure.
345
+ * \retval #EDHOC_ERROR_EPHEMERAL_DIFFIE_HELLMAN_FAILURE
346
+ * Ephemeral Diffie-Hellman key pair or agreement failure.
347
+ * \retval #EDHOC_ERROR_INVALID_MAC_2
348
+ * Invalid MAC_2.
349
+ * \retval #EDHOC_ERROR_INVALID_SIGN_OR_MAC_2
350
+ * Invalid Signature_or_MAC_2.
351
+ * \retval #EDHOC_ERROR_CREDENTIALS_FAILURE
352
+ * Authentication credentials fetch/verify failure.
353
+ * \retval #EDHOC_ERROR_EAD_PROCESS_FAILURE
354
+ * External authorization data process failure.
214
355
  */
215
356
  int edhoc_message_2_process(struct edhoc_context *edhoc_context,
216
357
  const uint8_t *message_2, size_t message_2_length);
@@ -223,7 +364,28 @@ int edhoc_message_2_process(struct edhoc_context *edhoc_context,
223
364
  * \param message_3_size Size of the \p message_3 buffer in bytes.
224
365
  * \param[out] message_3_length On success, the number of bytes that make up the message 3.
225
366
  *
226
- * \return EDHOC_SUCCESS on success, otherwise failure.
367
+ * \retval #EDHOC_SUCCESS
368
+ * Success.
369
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
370
+ * Combination of input parameters are recognized as invalid.
371
+ * \retval #EDHOC_ERROR_BAD_STATE
372
+ * Internal context state is incorrect.
373
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
374
+ * Processing code branch is not permitted by implementation.
375
+ * \retval #EDHOC_ERROR_BUFFER_TOO_SMALL
376
+ * Used buffer is too small.
377
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
378
+ * CBOR encoding failure.
379
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
380
+ * Cryptographics operation failure.
381
+ * \retval #EDHOC_ERROR_TRANSCRIPT_HASH_FAILURE
382
+ * Computation of transcript hash failure.
383
+ * \retval #EDHOC_ERROR_PSEUDORANDOM_KEY_FAILURE
384
+ * Computation of pseudorandom key failure.
385
+ * \retval #EDHOC_ERROR_CREDENTIALS_FAILURE
386
+ * Authentication credentials fetch/verify failure.
387
+ * \retval #EDHOC_ERROR_EAD_COMPOSE_FAILURE
388
+ * External authorization data compose failure.
227
389
  */
228
390
  int edhoc_message_3_compose(struct edhoc_context *edhoc_context,
229
391
  uint8_t *message_3, size_t message_3_size,
@@ -236,7 +398,34 @@ int edhoc_message_3_compose(struct edhoc_context *edhoc_context,
236
398
  * \param[in] message_3 Buffer containing the message 3.
237
399
  * \param message_3_length Size of the \p message_3 buffer in bytes.
238
400
  *
239
- * \return EDHOC_SUCCESS on success, otherwise failure.
401
+ * \retval #EDHOC_SUCCESS
402
+ * Success.
403
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
404
+ * Combination of input parameters are recognized as invalid.
405
+ * \retval #EDHOC_ERROR_BAD_STATE
406
+ * Internal context state is incorrect.
407
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
408
+ * Processing code branch is not permitted by implementation.
409
+ * \retval #EDHOC_ERROR_BUFFER_TOO_SMALL
410
+ * Used buffer is too small.
411
+ * \retval #EDHOC_ERROR_MSG_3_PROCESS_FAILURE
412
+ * Error on EDHOC layer during processing.
413
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
414
+ * CBOR decoding failure.
415
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
416
+ * Cryptographics operation failure.
417
+ * \retval #EDHOC_ERROR_TRANSCRIPT_HASH_FAILURE
418
+ * Computation of transcript hash failure.
419
+ * \retval #EDHOC_ERROR_PSEUDORANDOM_KEY_FAILURE
420
+ * Computation of pseudorandom key failure.
421
+ * \retval #EDHOC_ERROR_INVALID_MAC_3
422
+ * Invalid EDHOC MAC_3.
423
+ * \retval #EDHOC_ERROR_INVALID_SIGN_OR_MAC_3
424
+ * Invalid EDHOC Signature_or_MAC_3.
425
+ * \retval #EDHOC_ERROR_CREDENTIALS_FAILURE
426
+ * Authentication credentials fetch/verify failure.
427
+ * \retval #EDHOC_ERROR_EAD_PROCESS_FAILURE
428
+ * External authorization data process failure.
240
429
  */
241
430
  int edhoc_message_3_process(struct edhoc_context *edhoc_context,
242
431
  const uint8_t *message_3, size_t message_3_length);
@@ -249,7 +438,18 @@ int edhoc_message_3_process(struct edhoc_context *edhoc_context,
249
438
  * \param message_4_size Size of the \p message_4 buffer in bytes.
250
439
  * \param[out] message_4_length On success, the number of bytes that make up the message 4.
251
440
  *
252
- * \return EDHOC_SUCCESS on success, otherwise failure.
441
+ * \retval #EDHOC_SUCCESS
442
+ * Success.
443
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
444
+ * Combination of input parameters are recognized as invalid.
445
+ * \retval #EDHOC_ERROR_BAD_STATE
446
+ * Internal context state is incorrect.
447
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
448
+ * CBOR encoding failure.
449
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
450
+ * Cryptographics operation failure.
451
+ * \retval #EDHOC_ERROR_EAD_COMPOSE_FAILURE
452
+ * External authorization data compose failure.
253
453
  */
254
454
  int edhoc_message_4_compose(struct edhoc_context *edhoc_context,
255
455
  uint8_t *message_4, size_t message_4_size,
@@ -262,7 +462,22 @@ int edhoc_message_4_compose(struct edhoc_context *edhoc_context,
262
462
  * \param[in] message_4 Buffer containing the message 4.
263
463
  * \param message_4_length Size of the \p message_4 buffer in bytes.
264
464
  *
265
- * \return EDHOC_SUCCESS on success, otherwise failure.
465
+ * \retval #EDHOC_SUCCESS
466
+ * Success.
467
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
468
+ * Combination of input parameters are recognized as invalid.
469
+ * \retval #EDHOC_ERROR_BAD_STATE
470
+ * Internal context state is incorrect.
471
+ * \retval #EDHOC_ERROR_MSG4_PROCESS_FAILURE
472
+ * Error on EDHOC layer during processing.
473
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
474
+ * CBOR decoding failure.
475
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
476
+ * Cryptographics operation failure.
477
+ * \retval #EDHOC_ERROR_MSG_4_PROCESS_FAILURE
478
+ * External authorization data process failure.
479
+ * \retval #EDHOC_ERROR_EAD_PROCESS_FAILURE
480
+ * External authorization data process failure.
266
481
  */
267
482
  int edhoc_message_4_process(struct edhoc_context *edhoc_context,
268
483
  const uint8_t *message_4, size_t message_4_length);
@@ -276,7 +491,18 @@ int edhoc_message_4_process(struct edhoc_context *edhoc_context,
276
491
  * \param error_code EDHOC error code.
277
492
  * \param[in] error_info EDHOC error information.
278
493
  *
279
- * \return EDHOC_SUCCESS on success, otherwise failure.
494
+ * \retval #EDHOC_SUCCESS
495
+ * Success.
496
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
497
+ * Combination of input parameters are recognized as invalid.
498
+ * \retval #EDHOC_ERROR_BAD_STATE
499
+ * Internal context state is incorrect.
500
+ * \retval #EDHOC_ERROR_BUFFER_TOO_SMALL
501
+ * Used buffer is too small.
502
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
503
+ * Processing code branch is not permitted by implementation.
504
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
505
+ * CBOR encoding failure.
280
506
  */
281
507
  int edhoc_message_error_compose(uint8_t *message_error,
282
508
  size_t message_error_size,
@@ -292,7 +518,18 @@ int edhoc_message_error_compose(uint8_t *message_error,
292
518
  * \param[out] error_code EDHOC error code.
293
519
  * \param[out] error_info EDHOC error information.
294
520
  *
295
- * \return EDHOC_SUCCESS on success, otherwise failure.
521
+ * \retval #EDHOC_SUCCESS
522
+ * Success.
523
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
524
+ * Combination of input parameters are recognized as invalid.
525
+ * \retval #EDHOC_ERROR_BAD_STATE
526
+ * Internal context state is incorrect.
527
+ * \retval #EDHOC_ERROR_BUFFER_TOO_SMALL
528
+ * Used buffer is too small.
529
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
530
+ * Processing code branch is not permitted by implementation.
531
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
532
+ * CBOR decoding failure.
296
533
  */
297
534
  int edhoc_message_error_process(const uint8_t *message_error,
298
535
  size_t message_error_length,
@@ -313,7 +550,20 @@ int edhoc_message_error_process(const uint8_t *message_error,
313
550
  * \param[out] secret Buffer where the generated secret is to be written.
314
551
  * \param secret_length Size of the \p secret buffer in bytes.
315
552
  *
316
- * \return EDHOC_SUCCESS on success, otherwise failure.
553
+ * \retval #EDHOC_SUCCESS
554
+ * Success.
555
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
556
+ * Combination of input parameters are recognized as invalid.
557
+ * \retval #EDHOC_ERROR_BAD_STATE
558
+ * Internal context state is incorrect.
559
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
560
+ * Processing code branch is not permitted by implementation.
561
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
562
+ * CBOR encoding failure.
563
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
564
+ * Cryptographics operation failure.
565
+ * \retval #EDHOC_ERROR_PSEUDORANDOM_KEY_FAILURE
566
+ * Computation of pseudorandom key failure.
317
567
  */
318
568
  int edhoc_export_prk_exporter(struct edhoc_context *edhoc_context, size_t label,
319
569
  uint8_t *secret, size_t secret_length);
@@ -325,7 +575,20 @@ int edhoc_export_prk_exporter(struct edhoc_context *edhoc_context, size_t label,
325
575
  * \param[in] entropy Buffer containing the entropy for key update.
326
576
  * \param entropy_length Size of the \p entropy buffer in bytes.
327
577
  *
328
- * \return EDHOC_SUCCESS on success, otherwise failure.
578
+ * \retval #EDHOC_SUCCESS
579
+ * Success.
580
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
581
+ * Combination of input parameters are recognized as invalid.
582
+ * \retval #EDHOC_ERROR_BAD_STATE
583
+ * Internal context state is incorrect.
584
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
585
+ * Processing code branch is not permitted by implementation.
586
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
587
+ * CBOR encoding failure.
588
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
589
+ * Cryptographics operation failure.
590
+ * \retval #EDHOC_ERROR_PSEUDORANDOM_KEY_FAILURE
591
+ * Computation of pseudorandom key failure.
329
592
  */
330
593
  int edhoc_export_key_update(struct edhoc_context *edhoc_context,
331
594
  const uint8_t *entropy, size_t entropy_length);
@@ -345,7 +608,20 @@ int edhoc_export_key_update(struct edhoc_context *edhoc_context,
345
608
  * \param recipient_id_size Size of the \p recipient_id buffer in bytes.
346
609
  * \param[out] recipient_id_length On success, the number of bytes that make up the recipient id.
347
610
  *
348
- * \return EDHOC_SUCCESS on success, otherwise failure.
611
+ * \retval #EDHOC_SUCCESS
612
+ * Success.
613
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
614
+ * Combination of input parameters are recognized as invalid.
615
+ * \retval #EDHOC_ERROR_BAD_STATE
616
+ * Internal context state is incorrect.
617
+ * \retval #EDHOC_ERROR_NOT_PERMITTED
618
+ * Processing code branch is not permitted by implementation.
619
+ * \retval #EDHOC_ERROR_CBOR_FAILURE
620
+ * CBOR encoding failure.
621
+ * \retval #EDHOC_ERROR_CRYPTO_FAILURE
622
+ * Cryptographics operation failure.
623
+ * \retval #EDHOC_ERROR_PSEUDORANDOM_KEY_FAILURE
624
+ * Computation of pseudorandom key failure.
349
625
  */
350
626
  int edhoc_export_oscore_session(struct edhoc_context *edhoc_context,
351
627
  uint8_t *master_secret,
@@ -368,25 +644,43 @@ int edhoc_export_oscore_session(struct edhoc_context *edhoc_context,
368
644
  * \param[in] edhoc_context EDHOC context.
369
645
  * \param[out] error_code EDHOC error code.
370
646
  *
371
- * \return EDHOC_SUCCESS on success, otherwise failure.
647
+ * \retval #EDHOC_SUCCESS
648
+ * Success.
649
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
650
+ * Combination of input parameters are recognized as invalid.
651
+ * \retval #EDHOC_ERROR_BAD_STATE
652
+ * Internal context state is incorrect.
372
653
  */
373
654
  int edhoc_error_get_code(const struct edhoc_context *edhoc_context,
374
655
  enum edhoc_error_code *error_code);
375
656
 
376
657
  /**
377
- * \brief EDHOC cipher suites getter in case of \p EDHOC_ERROR_CODE_WRONG_SELECTED_CIPHER_SUITE.
658
+ * \brief EDHOC own and peer cipher suites getter in case of \p EDHOC_ERROR_CODE_WRONG_SELECTED_CIPHER_SUITE.
378
659
  *
379
- * \param[in] edhoc_context EDHOC context.
380
- * \param[out] cipher_suites Buffer where the cipher suites values is to be written.
381
- * \param cipher_suites_size Size of the \p cipher_suites buffer in entries.
382
- * \param[out] cipher_suites_length On success, the number of entires that make up the cipher suites.
383
- *
384
- * \return EDHOC_SUCCESS on success, otherwise failure.
660
+ * \param[in] edhoc_context EDHOC context.
661
+ * \param[out] cipher_suites Buffer where the cipher suites values is to be written.
662
+ * \param cipher_suites_size Size of the \p cipher_suites buffer in entries.
663
+ * \param[out] cipher_suites_length On success, the number of entires that make up the cipher suites.
664
+ * \param[out] peer_cipher_suites Buffer where the peer cipher suites values is to be written.
665
+ * \param peer_cipher_suites_size Size of the \p peer_cipher_suites buffer in entries.
666
+ * \param[out] peer_cipher_suites_length On success, the number of entires that make up the peer cipher suites.
667
+ *
668
+ * \retval #EDHOC_SUCCESS
669
+ * Success.
670
+ * \retval #EDHOC_ERROR_INVALID_ARGUMENT
671
+ * Combination of input parameters are recognized as invalid.
672
+ * \retval #EDHOC_ERROR_BAD_STATE
673
+ * Internal context state is incorrect.
674
+ * \retval #EDHOC_ERROR_BUFFER_TOO_SMALL
675
+ * Used buffer is too small.
385
676
  */
386
677
  int edhoc_error_get_cipher_suites(const struct edhoc_context *edhoc_context,
387
678
  int32_t *cipher_suites,
388
679
  size_t cipher_suites_size,
389
- size_t *cipher_suites_length);
680
+ size_t *cipher_suites_length,
681
+ int32_t *peer_cipher_suites,
682
+ size_t peer_cipher_suites_size,
683
+ size_t *peer_cipher_suites_length);
390
684
 
391
685
  /**@}*/
392
686