edhoc 1.0.5 → 1.1.1
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.
- package/README.md +170 -0
- package/binding.gyp +13 -11
- package/dist/crypto.d.ts +9 -2
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +112 -84
- package/dist/edhoc.d.ts +31 -9
- package/dist/edhoc.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/x509credentials.d.ts +20 -0
- package/dist/x509credentials.d.ts.map +1 -0
- package/dist/x509credentials.js +140 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_types.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_ead_decode.h +2 -2
- package/external/libedhoc/backends/cbor/include/backend_cbor_ead_encode.h +2 -2
- package/external/libedhoc/backends/cbor/include/backend_cbor_edhoc_types.h +48 -43
- package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_types.h +3 -3
- package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_info_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_info_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_types.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_decode.h +3 -3
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_encode.h +3 -3
- package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_decode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_encode.h +1 -1
- package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_types.h +4 -4
- package/external/libedhoc/backends/cbor/include/backend_cbor_x509_types.h +93 -83
- package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_decode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_encode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_ead_decode.c +27 -32
- package/external/libedhoc/backends/cbor/src/backend_cbor_ead_encode.c +27 -32
- package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_decode.c +14 -23
- package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_encode.c +14 -23
- package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_decode.c +63 -52
- package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_encode.c +62 -51
- package/external/libedhoc/backends/cbor/src/backend_cbor_info_decode.c +14 -23
- package/external/libedhoc/backends/cbor/src/backend_cbor_info_encode.c +14 -23
- package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_decode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_encode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_decode.c +54 -51
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_encode.c +54 -51
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_decode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_encode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_decode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_encode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_decode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_encode.c +11 -20
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_decode.c +36 -37
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_encode.c +36 -37
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_decode.c +103 -80
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_encode.c +102 -79
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_decode.c +99 -76
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_encode.c +98 -75
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_decode.c +40 -41
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_encode.c +40 -41
- package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_decode.c +15 -24
- package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_encode.c +15 -24
- package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode.c +31 -0
- package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode.h +10 -0
- package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode2.c +18 -0
- package/external/libedhoc/externals/Unity/examples/example_1/src/ProductionCode2.h +9 -0
- package/external/libedhoc/externals/Unity/examples/example_1/test/TestProductionCode.c +69 -0
- package/external/libedhoc/externals/Unity/examples/example_1/test/TestProductionCode2.c +38 -0
- package/external/libedhoc/externals/Unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
- package/external/libedhoc/externals/Unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
- package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode.c +31 -0
- package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode.h +10 -0
- package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode2.c +18 -0
- package/external/libedhoc/externals/Unity/examples/example_2/src/ProductionCode2.h +9 -0
- package/external/libedhoc/externals/Unity/examples/example_2/test/TestProductionCode.c +71 -0
- package/external/libedhoc/externals/Unity/examples/example_2/test/TestProductionCode2.c +40 -0
- package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +16 -0
- package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +18 -0
- package/external/libedhoc/externals/Unity/examples/example_2/test/test_runners/all_tests.c +19 -0
- package/external/libedhoc/externals/Unity/examples/example_3/helper/UnityHelper.c +17 -0
- package/external/libedhoc/externals/Unity/examples/example_3/helper/UnityHelper.h +19 -0
- package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode.c +31 -0
- package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode.h +10 -0
- package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode2.c +18 -0
- package/external/libedhoc/externals/Unity/examples/example_3/src/ProductionCode2.h +9 -0
- package/external/libedhoc/externals/Unity/examples/example_3/test/TestProductionCode.c +69 -0
- package/external/libedhoc/externals/Unity/examples/example_3/test/TestProductionCode2.c +38 -0
- package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode.c +31 -0
- package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode.h +10 -0
- package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode2.c +18 -0
- package/external/libedhoc/externals/Unity/examples/example_4/src/ProductionCode2.h +9 -0
- package/external/libedhoc/externals/Unity/examples/example_4/test/TestProductionCode.c +70 -0
- package/external/libedhoc/externals/Unity/examples/example_4/test/TestProductionCode2.c +42 -0
- package/external/libedhoc/externals/Unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -0
- package/external/libedhoc/externals/Unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -0
- package/external/libedhoc/externals/Unity/examples/unity_config.h +251 -0
- package/external/libedhoc/externals/Unity/extras/bdd/src/unity_bdd.h +44 -0
- package/external/libedhoc/externals/Unity/extras/bdd/test/test_bdd.c +129 -0
- package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture.c +310 -0
- package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture.h +95 -0
- package/external/libedhoc/externals/Unity/extras/fixture/src/unity_fixture_internals.h +51 -0
- package/external/libedhoc/externals/Unity/extras/fixture/test/main/AllTests.c +20 -0
- package/external/libedhoc/externals/Unity/extras/fixture/test/template_fixture_tests.c +40 -0
- package/external/libedhoc/externals/Unity/extras/fixture/test/unity_fixture_Test.c +246 -0
- package/external/libedhoc/externals/Unity/extras/fixture/test/unity_fixture_TestRunner.c +33 -0
- package/external/libedhoc/externals/Unity/extras/memory/src/unity_memory.c +203 -0
- package/external/libedhoc/externals/Unity/extras/memory/src/unity_memory.h +61 -0
- package/external/libedhoc/externals/Unity/extras/memory/test/unity_memory_Test.c +326 -0
- package/external/libedhoc/externals/Unity/extras/memory/test/unity_memory_TestRunner.c +50 -0
- package/external/libedhoc/externals/Unity/extras/memory/test/unity_output_Spy.c +57 -0
- package/external/libedhoc/externals/Unity/extras/memory/test/unity_output_Spy.h +17 -0
- package/external/libedhoc/externals/Unity/src/unity.c +2501 -0
- package/external/libedhoc/externals/Unity/src/unity.h +698 -0
- package/external/libedhoc/externals/Unity/src/unity_internals.h +1183 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_cmd.c +61 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_def.c +57 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_head1.c +55 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_head1.h +15 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_cmd.c +80 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_def.c +76 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_head1.c +75 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_head1.h +13 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_new1.c +89 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_new2.c +89 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_param.c +77 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_run1.c +89 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_run2.c +89 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_mock_yaml.c +90 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_new1.c +67 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_new2.c +70 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_param.c +58 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_run1.c +67 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_run2.c +70 -0
- package/external/libedhoc/externals/Unity/test/expectdata/testsample_yaml.c +71 -0
- package/external/libedhoc/externals/Unity/test/testdata/CException.h +18 -0
- package/external/libedhoc/externals/Unity/test/testdata/Defs.h +16 -0
- package/external/libedhoc/externals/Unity/test/testdata/cmock.h +21 -0
- package/external/libedhoc/externals/Unity/test/testdata/mockMock.h +20 -0
- package/external/libedhoc/externals/Unity/test/testdata/testRunnerGenerator.c +204 -0
- package/external/libedhoc/externals/Unity/test/testdata/testRunnerGeneratorSmall.c +73 -0
- package/external/libedhoc/externals/Unity/test/testdata/testRunnerGeneratorWithMocks.c +200 -0
- package/external/libedhoc/externals/Unity/test/tests/self_assessment_utils.h +151 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_arrays.c +2941 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_core.c +375 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_doubles.c +1285 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_floats.c +1395 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_integers.c +2863 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_integers_64.c +783 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_memory.c +82 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_parameterized.c +309 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_parameterizedDemo.c +28 -0
- package/external/libedhoc/externals/Unity/test/tests/test_unity_strings.c +330 -0
- package/external/libedhoc/externals/Unity/test/tests/types_for_test.h +21 -0
- package/external/libedhoc/externals/zcbor/include/zcbor_common.h +147 -60
- package/external/libedhoc/externals/zcbor/include/zcbor_decode.h +291 -202
- package/external/libedhoc/externals/zcbor/include/zcbor_encode.h +100 -156
- package/external/libedhoc/externals/zcbor/include/zcbor_print.h +165 -0
- package/external/libedhoc/externals/zcbor/samples/hello_world/src/main.c +1 -1
- package/external/libedhoc/externals/zcbor/samples/pet/include/pet_decode.h +1 -1
- package/external/libedhoc/externals/zcbor/samples/pet/include/pet_encode.h +1 -1
- package/external/libedhoc/externals/zcbor/samples/pet/include/pet_types.h +4 -4
- package/external/libedhoc/externals/zcbor/samples/pet/src/main.c +4 -4
- package/external/libedhoc/externals/zcbor/samples/pet/src/pet_decode.c +15 -24
- package/external/libedhoc/externals/zcbor/samples/pet/src/pet_encode.c +14 -23
- package/external/libedhoc/externals/zcbor/src/zcbor_common.c +202 -29
- package/external/libedhoc/externals/zcbor/src/zcbor_decode.c +633 -173
- package/external/libedhoc/externals/zcbor/src/zcbor_encode.c +71 -184
- package/external/libedhoc/externals/zcbor/tests/decode/test1_suit_old_formats/src/main.c +152 -153
- package/external/libedhoc/externals/zcbor/tests/decode/test2_suit/src/main.c +64 -64
- package/external/libedhoc/externals/zcbor/tests/decode/test3_simple/src/main.c +15 -16
- package/external/libedhoc/externals/zcbor/tests/decode/test5_corner_cases/src/main.c +228 -84
- package/external/libedhoc/externals/zcbor/tests/decode/test7_suit9_simple/src/main.c +9 -9
- package/external/libedhoc/externals/zcbor/tests/decode/test8_suit12/src/main.c +0 -1
- package/external/libedhoc/externals/zcbor/tests/decode/test9_manifest14/src/main.c +172 -173
- package/external/libedhoc/externals/zcbor/tests/encode/test1_suit/src/main.c +73 -73
- package/external/libedhoc/externals/zcbor/tests/encode/test2_simple/src/main.c +1 -2
- package/external/libedhoc/externals/zcbor/tests/encode/test3_corner_cases/src/main.c +83 -56
- package/external/libedhoc/externals/zcbor/tests/encode/test4_senml/src/main.c +15 -16
- package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_everything.c +12 -0
- package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_manifest12.c +69 -69
- package/external/libedhoc/externals/zcbor/tests/unit/test1_unit_tests/src/main.c +448 -55
- package/external/libedhoc/externals/zcbor/tests/unit/test3_float16/src/main.c +49 -48
- package/external/libedhoc/include/edhoc.h +348 -54
- package/external/libedhoc/include/edhoc_common.h +289 -0
- package/external/libedhoc/include/edhoc_context.h +60 -35
- package/external/libedhoc/include/edhoc_credentials.h +55 -7
- package/external/libedhoc/include/edhoc_crypto.h +10 -10
- package/external/libedhoc/include/edhoc_ead.h +13 -10
- package/external/libedhoc/include/edhoc_macros.h +20 -11
- package/external/libedhoc/include/edhoc_values.h +2 -2
- package/external/libedhoc/library/edhoc.c +70 -36
- package/external/libedhoc/library/edhoc_common.c +1314 -0
- package/external/libedhoc/library/edhoc_exporter.c +45 -46
- package/external/libedhoc/library/edhoc_message_1.c +107 -72
- package/external/libedhoc/library/edhoc_message_2.c +396 -1693
- package/external/libedhoc/library/edhoc_message_3.c +465 -1656
- package/external/libedhoc/library/edhoc_message_4.c +93 -91
- package/external/libedhoc/library/edhoc_message_error.c +41 -41
- package/external/libedhoc/tests/include/{cipher_suites/cipher_suite_0.h → cipher_suite_0.h} +131 -134
- package/external/libedhoc/tests/include/{cipher_suites/cipher_suite_2.h → cipher_suite_2.h} +139 -140
- package/external/libedhoc/tests/include/{edhoc_trace_1/test_vector_1.h → test_vector_rfc9529_chapter_2.h} +786 -738
- package/external/libedhoc/tests/include/{edhoc_trace_2/test_vector_2.h → test_vector_rfc9529_chapter_3.h} +14 -10
- 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
- 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
- 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
- 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
- package/external/libedhoc/tests/src/{cipher_suites/cipher_suite_0.c → cipher_suite_0.c} +445 -447
- package/external/libedhoc/tests/src/{cipher_suites/cipher_suite_2.c → cipher_suite_2.c} +600 -600
- package/external/libedhoc/tests/src/module_test_api.c +430 -0
- package/external/libedhoc/tests/src/module_test_cipher_suite_0.c +395 -0
- package/external/libedhoc/tests/src/module_test_cipher_suite_2.c +392 -0
- package/external/libedhoc/tests/src/{error_message/test_edhoc_error_message.c → module_test_error_message.c} +94 -69
- package/external/libedhoc/tests/src/module_test_main.c +49 -0
- package/external/libedhoc/tests/src/{cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.c → module_test_rfc9528_suites_negotiation.c} +224 -227
- package/external/libedhoc/tests/src/module_test_rfc9529_chapter_2.c +2681 -0
- package/external/libedhoc/tests/src/module_test_rfc9529_chapter_3.c +1635 -0
- package/external/libedhoc/tests/src/module_test_x5chain_sign_keys_suite_0.c +1135 -0
- package/external/libedhoc/tests/src/module_test_x5chain_sign_keys_suite_2.c +1249 -0
- package/external/libedhoc/tests/src/module_test_x5chain_static_dh_keys_suite_2.c +798 -0
- package/external/libedhoc/tests/src/module_test_x5t_sign_keys_suite_2.c +956 -0
- package/include/EdhocComposeAsyncWorker.h +8 -6
- package/include/EdhocCredentialManager.h +16 -11
- package/include/EdhocCryptoManager.h +28 -21
- package/include/EdhocEadManager.h +3 -6
- package/include/{EdhocExportAsyncWorker.h → EdhocExportOscoreAsyncWorker.h} +20 -17
- package/include/EdhocKeyExporterAsyncWorker.h +76 -0
- package/include/EdhocKeyUpdateAsyncWorker.h +72 -0
- package/include/EdhocProcessAsyncWorker.h +14 -10
- package/include/LibEDHOC.h +44 -20
- package/include/UserContext.h +7 -9
- package/include/Utils.h +31 -27
- package/package.json +14 -3
- package/prebuilds/android-arm/edhoc.armv7.node +0 -0
- package/prebuilds/android-arm64/edhoc.armv8.node +0 -0
- package/prebuilds/darwin-arm64/edhoc.node +0 -0
- package/prebuilds/darwin-x64/edhoc.node +0 -0
- package/prebuilds/linux-arm/edhoc.armv6.node +0 -0
- package/prebuilds/linux-arm/edhoc.armv7.node +0 -0
- package/prebuilds/linux-arm64/edhoc.armv8.node +0 -0
- package/prebuilds/linux-x64/edhoc.glibc.node +0 -0
- package/prebuilds/linux-x64/edhoc.musl.node +0 -0
- package/prebuilds/win32-ia32/edhoc.node +0 -0
- package/prebuilds/win32-x64/edhoc.node +0 -0
- package/src/EdhocComposeAsyncWorker.cpp +18 -35
- package/src/EdhocCredentialManager.cpp +160 -187
- package/src/EdhocCryptoManager.cpp +386 -586
- package/src/EdhocEadManager.cpp +10 -18
- package/src/EdhocExportOscoreAsyncWorker.cpp +77 -0
- package/src/EdhocKeyExporterAsyncWorker.cpp +49 -0
- package/src/EdhocKeyUpdateAsyncWorker.cpp +41 -0
- package/src/EdhocProcessAsyncWorker.cpp +72 -19
- package/src/LibEDHOC.cpp +213 -174
- package/src/Suites.cpp +39 -72
- package/src/Utils.cpp +32 -56
- package/test/basic.test.ts +64 -0
- package/test/vectors.test.ts +111 -0
- package/dist/credentials.d.ts +0 -16
- package/dist/credentials.d.ts.map +0 -1
- package/dist/credentials.js +0 -84
- package/external/libedhoc/externals/zcbor/include/zcbor_debug.h +0 -69
- package/external/libedhoc/tests/include/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.h +0 -37
- package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_0.h +0 -48
- package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_2.h +0 -48
- package/external/libedhoc/tests/include/edhoc_trace_1/authentication_credentials_1.h +0 -60
- package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_1.h +0 -208
- package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_ead_1.h +0 -59
- package/external/libedhoc/tests/include/edhoc_trace_2/authentication_credentials_2.h +0 -60
- package/external/libedhoc/tests/include/edhoc_trace_2/test_edhoc_handshake_2.h +0 -199
- package/external/libedhoc/tests/include/error_message/test_edhoc_error_message.h +0 -48
- package/external/libedhoc/tests/include/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.h +0 -92
- package/external/libedhoc/tests/include/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.h +0 -96
- package/external/libedhoc/tests/include/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.h +0 -58
- package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.h +0 -56
- package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.h +0 -57
- package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.h +0 -59
- package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.h +0 -57
- package/external/libedhoc/tests/include/x509_hash_cs_2/authentication_credentials_x5t_cs_2.h +0 -60
- package/external/libedhoc/tests/include/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.h +0 -57
- package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_0.c +0 -475
- package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_2.c +0 -473
- package/external/libedhoc/tests/src/edhoc_trace_1/authentication_credentials_1.c +0 -252
- package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_1.c +0 -1829
- package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_ead_1.c +0 -1247
- package/external/libedhoc/tests/src/edhoc_trace_2/authentication_credentials_2.c +0 -170
- package/external/libedhoc/tests/src/edhoc_trace_2/test_edhoc_handshake_2.c +0 -1783
- package/external/libedhoc/tests/src/tests.c +0 -228
- package/external/libedhoc/tests/src/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.c +0 -332
- package/external/libedhoc/tests/src/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.c +0 -936
- package/external/libedhoc/tests/src/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.c +0 -166
- package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.c +0 -587
- package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.c +0 -917
- package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.c +0 -186
- package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.c +0 -743
- package/external/libedhoc/tests/src/x509_hash_cs_2/authentication_credentials_x5t_cs_2.c +0 -261
- package/external/libedhoc/tests/src/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.c +0 -854
- package/src/EdhocExportAsyncWorker.cpp +0 -82
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* \file
|
|
2
|
+
* \file module_test_rfc9528_suites_negotiation.c
|
|
3
3
|
* \author Kamil Kielbasa
|
|
4
|
-
* \brief
|
|
5
|
-
* \version 0.
|
|
6
|
-
* \date 2024-
|
|
4
|
+
* \brief Module tests for RFC 9528 suites negotation examples.
|
|
5
|
+
* \version 0.6
|
|
6
|
+
* \date 2024-08-05
|
|
7
7
|
*
|
|
8
8
|
* \copyright Copyright (c) 2024
|
|
9
9
|
*
|
|
@@ -11,20 +11,24 @@
|
|
|
11
11
|
|
|
12
12
|
/* Include files ----------------------------------------------------------- */
|
|
13
13
|
|
|
14
|
-
/*
|
|
15
|
-
#
|
|
16
|
-
#include
|
|
14
|
+
/* EDHOC header: */
|
|
15
|
+
#define EDHOC_ALLOW_PRIVATE_ACCESS
|
|
16
|
+
#include <edhoc.h>
|
|
17
|
+
|
|
18
|
+
/* Cipher suite 2: */
|
|
19
|
+
#include "cipher_suite_2.h"
|
|
17
20
|
|
|
18
21
|
/* Standard library headers: */
|
|
19
|
-
#include <stdio.h>
|
|
20
22
|
#include <stdint.h>
|
|
21
23
|
#include <stddef.h>
|
|
22
24
|
#include <string.h>
|
|
23
|
-
#include <assert.h>
|
|
24
25
|
|
|
25
|
-
/*
|
|
26
|
-
#
|
|
27
|
-
|
|
26
|
+
/* PSA crypto header: */
|
|
27
|
+
#include <psa/crypto.h>
|
|
28
|
+
|
|
29
|
+
/* Unity headers: */
|
|
30
|
+
#include <unity.h>
|
|
31
|
+
#include <unity_fixture.h>
|
|
28
32
|
|
|
29
33
|
/* Module defines ---------------------------------------------------------- */
|
|
30
34
|
/* Module types and type definitiones -------------------------------------- */
|
|
@@ -49,45 +53,39 @@ cipher_suite_2_make_key_pair_init(void *user_ctx, const void *kid,
|
|
|
49
53
|
size_t pub_key_size, size_t *pub_key_len);
|
|
50
54
|
|
|
51
55
|
static const struct edhoc_keys edhoc_keys = {
|
|
52
|
-
.
|
|
56
|
+
.import_key = cipher_suite_2_key_import,
|
|
53
57
|
.destroy_key = cipher_suite_2_key_destroy,
|
|
54
58
|
};
|
|
55
59
|
|
|
56
60
|
static const struct edhoc_crypto edhoc_crypto_mocked_init = {
|
|
57
61
|
.make_key_pair = cipher_suite_2_make_key_pair_init,
|
|
62
|
+
.key_agreement = cipher_suite_2_key_agreement,
|
|
63
|
+
.signature = cipher_suite_2_signature,
|
|
64
|
+
.verify = cipher_suite_2_verify,
|
|
65
|
+
.extract = cipher_suite_2_extract,
|
|
66
|
+
.expand = cipher_suite_2_expand,
|
|
67
|
+
.encrypt = cipher_suite_2_encrypt,
|
|
68
|
+
.decrypt = cipher_suite_2_decrypt,
|
|
58
69
|
.hash = cipher_suite_2_hash,
|
|
59
70
|
};
|
|
60
71
|
|
|
61
72
|
static const struct edhoc_crypto edhoc_crypto_mocked_resp = {
|
|
73
|
+
.make_key_pair = cipher_suite_2_make_key_pair,
|
|
74
|
+
.key_agreement = cipher_suite_2_key_agreement,
|
|
75
|
+
.signature = cipher_suite_2_signature,
|
|
76
|
+
.verify = cipher_suite_2_verify,
|
|
77
|
+
.extract = cipher_suite_2_extract,
|
|
78
|
+
.expand = cipher_suite_2_expand,
|
|
79
|
+
.encrypt = cipher_suite_2_encrypt,
|
|
80
|
+
.decrypt = cipher_suite_2_decrypt,
|
|
62
81
|
.hash = cipher_suite_2_hash,
|
|
63
82
|
};
|
|
64
83
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* \brief Helper function for printing arrays.
|
|
69
|
-
*/
|
|
70
|
-
static inline void print_array(const char *name, const uint8_t *buffer,
|
|
71
|
-
size_t buffer_length);
|
|
84
|
+
static int ret = EDHOC_ERROR_GENERIC_ERROR;
|
|
72
85
|
|
|
86
|
+
/* Static function declarations -------------------------------------------- */
|
|
73
87
|
/* Static function definitions --------------------------------------------- */
|
|
74
88
|
|
|
75
|
-
static inline void print_array(const char *name, const uint8_t *buffer,
|
|
76
|
-
size_t buffer_length)
|
|
77
|
-
{
|
|
78
|
-
printf("%s:\tLEN( %zu )\n", name, buffer_length);
|
|
79
|
-
|
|
80
|
-
for (size_t i = 0; i < buffer_length; ++i) {
|
|
81
|
-
if (0 == i % 16 && i > 0) {
|
|
82
|
-
printf("\n");
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
printf("%02x ", buffer[i]);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
printf("\n\n");
|
|
89
|
-
}
|
|
90
|
-
|
|
91
89
|
static int
|
|
92
90
|
cipher_suite_2_make_key_pair_init(void *user_ctx, const void *kid,
|
|
93
91
|
uint8_t *priv_key, size_t priv_key_size,
|
|
@@ -112,6 +110,19 @@ cipher_suite_2_make_key_pair_init(void *user_ctx, const void *kid,
|
|
|
112
110
|
|
|
113
111
|
/* Module interface function definitions ----------------------------------- */
|
|
114
112
|
|
|
113
|
+
TEST_GROUP(rfc9528_suites_negotiation);
|
|
114
|
+
|
|
115
|
+
TEST_SETUP(rfc9528_suites_negotiation)
|
|
116
|
+
{
|
|
117
|
+
ret = psa_crypto_init();
|
|
118
|
+
TEST_ASSERT_EQUAL(PSA_SUCCESS, ret);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
TEST_TEAR_DOWN(rfc9528_suites_negotiation)
|
|
122
|
+
{
|
|
123
|
+
mbedtls_psa_crypto_free();
|
|
124
|
+
}
|
|
125
|
+
|
|
115
126
|
/*
|
|
116
127
|
* Test scenario comes from:
|
|
117
128
|
* - RFC 9528: 6.3.2. Examples
|
|
@@ -128,11 +139,9 @@ cipher_suite_2_make_key_pair_init(void *user_ctx, const void *kid,
|
|
|
128
139
|
* +--------------------------------------------------------->|
|
|
129
140
|
* | |
|
|
130
141
|
*/
|
|
131
|
-
|
|
142
|
+
TEST(rfc9528_suites_negotiation, example_1)
|
|
132
143
|
{
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const enum edhoc_method method = EDHOC_METHOD_1;
|
|
144
|
+
const enum edhoc_method methods[] = { EDHOC_METHOD_1 };
|
|
136
145
|
const struct edhoc_cipher_suite csuites_init[] = {
|
|
137
146
|
[0].value = 5,
|
|
138
147
|
[0].ecc_key_length = 32,
|
|
@@ -148,83 +157,80 @@ void test_edhoc_cipher_suites_negotiation_scenario_1(void)
|
|
|
148
157
|
.int_value = 1,
|
|
149
158
|
};
|
|
150
159
|
|
|
151
|
-
|
|
152
|
-
* \brief 1. Setup initiator context.
|
|
153
|
-
*/
|
|
160
|
+
/* 1. Setup initiator context. */
|
|
154
161
|
struct edhoc_context init_ctx = { 0 };
|
|
155
162
|
|
|
156
163
|
ret = edhoc_context_init(&init_ctx);
|
|
157
|
-
|
|
164
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
158
165
|
|
|
159
|
-
ret =
|
|
160
|
-
|
|
166
|
+
ret = edhoc_set_methods(&init_ctx, methods, ARRAY_SIZE(methods));
|
|
167
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
161
168
|
|
|
162
169
|
ret = edhoc_set_cipher_suites(&init_ctx, csuites_init,
|
|
163
170
|
ARRAY_SIZE(csuites_init));
|
|
164
|
-
|
|
171
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
165
172
|
|
|
166
|
-
ret = edhoc_set_connection_id(&init_ctx, conn_id_init);
|
|
167
|
-
|
|
173
|
+
ret = edhoc_set_connection_id(&init_ctx, &conn_id_init);
|
|
174
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
168
175
|
|
|
169
|
-
ret = edhoc_bind_keys(&init_ctx, edhoc_keys);
|
|
170
|
-
|
|
176
|
+
ret = edhoc_bind_keys(&init_ctx, &edhoc_keys);
|
|
177
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
171
178
|
|
|
172
|
-
ret = edhoc_bind_crypto(&init_ctx, edhoc_crypto_mocked_init);
|
|
173
|
-
|
|
179
|
+
ret = edhoc_bind_crypto(&init_ctx, &edhoc_crypto_mocked_init);
|
|
180
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
174
181
|
|
|
175
|
-
|
|
176
|
-
* \brief 2. Setup responder context.
|
|
177
|
-
*/
|
|
182
|
+
/* 2. Setup responder context. */
|
|
178
183
|
struct edhoc_context resp_ctx = { 0 };
|
|
179
184
|
|
|
180
185
|
ret = edhoc_context_init(&resp_ctx);
|
|
181
|
-
|
|
186
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
182
187
|
|
|
183
|
-
ret =
|
|
184
|
-
|
|
188
|
+
ret = edhoc_set_methods(&resp_ctx, methods, ARRAY_SIZE(methods));
|
|
189
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
185
190
|
|
|
186
191
|
ret = edhoc_set_cipher_suites(&resp_ctx, csuites_resp,
|
|
187
192
|
ARRAY_SIZE(csuites_resp));
|
|
188
|
-
|
|
193
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
189
194
|
|
|
190
|
-
|
|
191
|
-
* \brief 3. Initiator compose message 1.
|
|
192
|
-
*/
|
|
195
|
+
/* 3. Initiator compose message 1. */
|
|
193
196
|
size_t msg_1_len = 0;
|
|
194
197
|
uint8_t msg_1[100] = { 0 };
|
|
195
198
|
|
|
196
199
|
ret = edhoc_message_1_compose(&init_ctx, msg_1, ARRAY_SIZE(msg_1),
|
|
197
200
|
&msg_1_len);
|
|
198
|
-
|
|
201
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
199
202
|
|
|
200
|
-
|
|
201
|
-
* \brief 4a. Responder process message 1.
|
|
202
|
-
*/
|
|
203
|
+
/* 4a. Responder process message 1. */
|
|
203
204
|
ret = edhoc_message_1_process(&resp_ctx, msg_1, msg_1_len);
|
|
204
|
-
|
|
205
|
+
TEST_ASSERT_EQUAL(EDHOC_ERROR_MSG_1_PROCESS_FAILURE, ret);
|
|
205
206
|
|
|
206
|
-
|
|
207
|
-
* \brief 4b. Responder checks EDHOC error code.
|
|
208
|
-
*/
|
|
207
|
+
/* 4b. Responder checks EDHOC error code. */
|
|
209
208
|
enum edhoc_error_code error_code_resp = -1;
|
|
210
209
|
ret = edhoc_error_get_code(&resp_ctx, &error_code_resp);
|
|
211
|
-
|
|
212
|
-
|
|
210
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
211
|
+
TEST_ASSERT_EQUAL(EDHOC_ERROR_CODE_WRONG_SELECTED_CIPHER_SUITE,
|
|
212
|
+
error_code_resp);
|
|
213
213
|
|
|
214
|
-
|
|
215
|
-
* \brief 4c. Responder collect his EDHOC cipher suites.
|
|
216
|
-
*/
|
|
214
|
+
/* 4c. Responder collect his own and peer EDHOC cipher suites. */
|
|
217
215
|
size_t csuites_len = 0;
|
|
218
216
|
int32_t csuites[1] = { 0 };
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
217
|
+
size_t peer_csuites_len = 0;
|
|
218
|
+
int32_t peer_csuites[1] = { 0 };
|
|
219
|
+
ret = edhoc_error_get_cipher_suites(
|
|
220
|
+
&resp_ctx, csuites, ARRAY_SIZE(csuites), &csuites_len,
|
|
221
|
+
peer_csuites, ARRAY_SIZE(peer_csuites), &peer_csuites_len);
|
|
222
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
223
|
+
TEST_ASSERT_EQUAL(ARRAY_SIZE(csuites_resp), csuites_len);
|
|
224
|
+
TEST_ASSERT_EQUAL(csuites_resp[0].value, csuites[0]);
|
|
225
|
+
TEST_ASSERT_EQUAL(ARRAY_SIZE(csuites_init), peer_csuites_len);
|
|
226
|
+
TEST_ASSERT_EQUAL(csuites_init[0].value, peer_csuites[0]);
|
|
227
|
+
|
|
228
|
+
/*
|
|
229
|
+
* Point where responder can compare his and peer cipher suites.
|
|
230
|
+
* After comparison responder is able to send error message with his preferences.
|
|
231
|
+
*/
|
|
232
|
+
|
|
233
|
+
/* 4d. Responder compose error message. */
|
|
228
234
|
size_t msg_err_len = 0;
|
|
229
235
|
uint8_t msg_err[100] = { 0 };
|
|
230
236
|
|
|
@@ -236,11 +242,9 @@ void test_edhoc_cipher_suites_negotiation_scenario_1(void)
|
|
|
236
242
|
ret = edhoc_message_error_compose(msg_err, ARRAY_SIZE(msg_err),
|
|
237
243
|
&msg_err_len, error_code_resp,
|
|
238
244
|
&error_info);
|
|
239
|
-
|
|
245
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
240
246
|
|
|
241
|
-
|
|
242
|
-
* \brief 5a. Initiator process error message.
|
|
243
|
-
*/
|
|
247
|
+
/* 5a. Initiator process error message. */
|
|
244
248
|
enum edhoc_error_code error_code_init = -1;
|
|
245
249
|
int32_t cipher_suites_init[1] = { 0 };
|
|
246
250
|
struct edhoc_error_info error_info_init = {
|
|
@@ -250,19 +254,20 @@ void test_edhoc_cipher_suites_negotiation_scenario_1(void)
|
|
|
250
254
|
};
|
|
251
255
|
ret = edhoc_message_error_process(msg_err, msg_err_len,
|
|
252
256
|
&error_code_init, &error_info_init);
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
257
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
258
|
+
TEST_ASSERT_EQUAL(EDHOC_ERROR_CODE_WRONG_SELECTED_CIPHER_SUITE,
|
|
259
|
+
error_code_init);
|
|
260
|
+
TEST_ASSERT_EQUAL(ARRAY_SIZE(csuites_resp),
|
|
261
|
+
error_info_init.written_entries);
|
|
262
|
+
TEST_ASSERT_EQUAL(csuites_resp[0].value,
|
|
263
|
+
error_info_init.cipher_suites[0]);
|
|
264
|
+
|
|
265
|
+
/* 5b. Initiator reinitialize context with new cipher suites. */
|
|
261
266
|
ret = edhoc_context_init(&init_ctx);
|
|
262
|
-
|
|
267
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
263
268
|
|
|
264
|
-
ret =
|
|
265
|
-
|
|
269
|
+
ret = edhoc_set_methods(&init_ctx, methods, ARRAY_SIZE(methods));
|
|
270
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
266
271
|
|
|
267
272
|
const struct edhoc_cipher_suite fixed_csuites_init[] = {
|
|
268
273
|
[0].value = 5, [0].ecc_key_length = 32, [0].hash_length = 32,
|
|
@@ -270,56 +275,50 @@ void test_edhoc_cipher_suites_negotiation_scenario_1(void)
|
|
|
270
275
|
};
|
|
271
276
|
ret = edhoc_set_cipher_suites(&init_ctx, fixed_csuites_init,
|
|
272
277
|
ARRAY_SIZE(fixed_csuites_init));
|
|
273
|
-
|
|
278
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
274
279
|
|
|
275
|
-
ret = edhoc_set_connection_id(&init_ctx, conn_id_init);
|
|
276
|
-
|
|
280
|
+
ret = edhoc_set_connection_id(&init_ctx, &conn_id_init);
|
|
281
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
277
282
|
|
|
278
|
-
ret = edhoc_bind_keys(&init_ctx, edhoc_keys);
|
|
279
|
-
|
|
283
|
+
ret = edhoc_bind_keys(&init_ctx, &edhoc_keys);
|
|
284
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
280
285
|
|
|
281
|
-
ret = edhoc_bind_crypto(&init_ctx, edhoc_crypto_mocked_init);
|
|
282
|
-
|
|
286
|
+
ret = edhoc_bind_crypto(&init_ctx, &edhoc_crypto_mocked_init);
|
|
287
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
283
288
|
|
|
284
|
-
|
|
285
|
-
* \brief 5c. Initiator again compose message 1.
|
|
286
|
-
*/
|
|
289
|
+
/* 5c. Initiator again compose message 1. */
|
|
287
290
|
msg_1_len = 0;
|
|
288
291
|
memset(msg_1, 0, sizeof(msg_1));
|
|
289
292
|
|
|
290
293
|
ret = edhoc_message_1_compose(&init_ctx, msg_1, ARRAY_SIZE(msg_1),
|
|
291
294
|
&msg_1_len);
|
|
292
|
-
|
|
295
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
293
296
|
|
|
294
|
-
|
|
295
|
-
* \brief 6. Responder reinitialize context.
|
|
296
|
-
*/
|
|
297
|
+
/* 6. Responder reinitialize context. */
|
|
297
298
|
ret = edhoc_context_init(&resp_ctx);
|
|
298
|
-
|
|
299
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
299
300
|
|
|
300
|
-
ret =
|
|
301
|
-
|
|
301
|
+
ret = edhoc_set_methods(&resp_ctx, methods, ARRAY_SIZE(methods));
|
|
302
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
302
303
|
|
|
303
304
|
ret = edhoc_set_cipher_suites(&resp_ctx, csuites_resp,
|
|
304
305
|
ARRAY_SIZE(csuites_resp));
|
|
305
|
-
|
|
306
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
306
307
|
|
|
307
|
-
ret = edhoc_bind_keys(&resp_ctx, edhoc_keys);
|
|
308
|
-
|
|
308
|
+
ret = edhoc_bind_keys(&resp_ctx, &edhoc_keys);
|
|
309
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
309
310
|
|
|
310
|
-
ret = edhoc_bind_crypto(&resp_ctx, edhoc_crypto_mocked_resp);
|
|
311
|
-
|
|
311
|
+
ret = edhoc_bind_crypto(&resp_ctx, &edhoc_crypto_mocked_resp);
|
|
312
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
312
313
|
|
|
313
|
-
|
|
314
|
-
* \brief 7. Responder successfully process message 1.
|
|
315
|
-
*/
|
|
314
|
+
/* 7. Responder successfully process message 1. */
|
|
316
315
|
ret = edhoc_message_1_process(&resp_ctx, msg_1, msg_1_len);
|
|
317
|
-
|
|
316
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
318
317
|
|
|
319
318
|
error_code_resp = -1;
|
|
320
319
|
ret = edhoc_error_get_code(&resp_ctx, &error_code_resp);
|
|
321
|
-
|
|
322
|
-
|
|
320
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
321
|
+
TEST_ASSERT_EQUAL(EDHOC_ERROR_CODE_SUCCESS, error_code_resp);
|
|
323
322
|
}
|
|
324
323
|
|
|
325
324
|
/*
|
|
@@ -338,11 +337,9 @@ void test_edhoc_cipher_suites_negotiation_scenario_1(void)
|
|
|
338
337
|
* +--------------------------------------------------------->|
|
|
339
338
|
* | |
|
|
340
339
|
*/
|
|
341
|
-
|
|
340
|
+
TEST(rfc9528_suites_negotiation, example_2)
|
|
342
341
|
{
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
const enum edhoc_method method = EDHOC_METHOD_1;
|
|
342
|
+
const enum edhoc_method methods[] = { EDHOC_METHOD_1 };
|
|
346
343
|
const struct edhoc_cipher_suite csuites_init[] = {
|
|
347
344
|
[0].value = 5, [0].ecc_key_length = 32, [0].hash_length = 32,
|
|
348
345
|
[1].value = 6, [1].ecc_key_length = 32, [1].hash_length = 32,
|
|
@@ -356,84 +353,82 @@ void test_edhoc_cipher_suites_negotiation_scenario_2(void)
|
|
|
356
353
|
.int_value = 1,
|
|
357
354
|
};
|
|
358
355
|
|
|
359
|
-
|
|
360
|
-
* \brief 1. Setup initiator context.
|
|
361
|
-
*/
|
|
356
|
+
/* 1. Setup initiator context. */
|
|
362
357
|
struct edhoc_context init_ctx = { 0 };
|
|
363
358
|
|
|
364
359
|
ret = edhoc_context_init(&init_ctx);
|
|
365
|
-
|
|
360
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
366
361
|
|
|
367
|
-
ret =
|
|
368
|
-
|
|
362
|
+
ret = edhoc_set_methods(&init_ctx, methods, ARRAY_SIZE(methods));
|
|
363
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
369
364
|
|
|
370
365
|
ret = edhoc_set_cipher_suites(&init_ctx, csuites_init,
|
|
371
366
|
ARRAY_SIZE(csuites_init));
|
|
372
|
-
|
|
367
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
373
368
|
|
|
374
|
-
ret = edhoc_set_connection_id(&init_ctx, conn_id_init);
|
|
375
|
-
|
|
369
|
+
ret = edhoc_set_connection_id(&init_ctx, &conn_id_init);
|
|
370
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
376
371
|
|
|
377
|
-
ret = edhoc_bind_keys(&init_ctx, edhoc_keys);
|
|
378
|
-
|
|
372
|
+
ret = edhoc_bind_keys(&init_ctx, &edhoc_keys);
|
|
373
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
379
374
|
|
|
380
|
-
ret = edhoc_bind_crypto(&init_ctx, edhoc_crypto_mocked_init);
|
|
381
|
-
|
|
375
|
+
ret = edhoc_bind_crypto(&init_ctx, &edhoc_crypto_mocked_init);
|
|
376
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
382
377
|
|
|
383
|
-
|
|
384
|
-
* \brief 2. Setup responder context.
|
|
385
|
-
*/
|
|
378
|
+
/* 2. Setup responder context. */
|
|
386
379
|
struct edhoc_context resp_ctx = { 0 };
|
|
387
380
|
|
|
388
381
|
ret = edhoc_context_init(&resp_ctx);
|
|
389
|
-
|
|
382
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
390
383
|
|
|
391
|
-
ret =
|
|
392
|
-
|
|
384
|
+
ret = edhoc_set_methods(&resp_ctx, methods, ARRAY_SIZE(methods));
|
|
385
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
393
386
|
|
|
394
387
|
ret = edhoc_set_cipher_suites(&resp_ctx, csuites_resp,
|
|
395
388
|
ARRAY_SIZE(csuites_resp));
|
|
396
|
-
|
|
389
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
397
390
|
|
|
398
|
-
|
|
399
|
-
* \brief 3. Initiator compose message 1.
|
|
400
|
-
*/
|
|
391
|
+
/* 3. Initiator compose message 1. */
|
|
401
392
|
size_t msg_1_len = 0;
|
|
402
393
|
uint8_t msg_1[100] = { 0 };
|
|
403
394
|
|
|
404
395
|
ret = edhoc_message_1_compose(&init_ctx, msg_1, ARRAY_SIZE(msg_1),
|
|
405
396
|
&msg_1_len);
|
|
406
|
-
|
|
397
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
407
398
|
|
|
408
|
-
|
|
409
|
-
* \brief 4a. Responder process message 1.
|
|
410
|
-
*/
|
|
399
|
+
/* 4a. Responder process message 1. */
|
|
411
400
|
ret = edhoc_message_1_process(&resp_ctx, msg_1, msg_1_len);
|
|
412
|
-
|
|
401
|
+
TEST_ASSERT_EQUAL(EDHOC_ERROR_MSG_1_PROCESS_FAILURE, ret);
|
|
413
402
|
|
|
414
|
-
|
|
415
|
-
* \brief 4b. Responder checks EDHOC error code.
|
|
416
|
-
*/
|
|
403
|
+
/* 4b. Responder checks EDHOC error code. */
|
|
417
404
|
enum edhoc_error_code error_code_resp = -1;
|
|
418
405
|
ret = edhoc_error_get_code(&resp_ctx, &error_code_resp);
|
|
419
|
-
|
|
420
|
-
|
|
406
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
407
|
+
TEST_ASSERT_EQUAL(EDHOC_ERROR_CODE_WRONG_SELECTED_CIPHER_SUITE,
|
|
408
|
+
error_code_resp);
|
|
421
409
|
|
|
422
|
-
|
|
423
|
-
* \brief 4c. Responder collect his EDHOC cipher suites.
|
|
424
|
-
*/
|
|
410
|
+
/* 4c. Responder collect his own and peer EDHOC cipher suites. */
|
|
425
411
|
size_t csuites_len = 0;
|
|
426
412
|
int32_t csuites[2] = { 0 };
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
413
|
+
size_t peer_csuites_len = 0;
|
|
414
|
+
int32_t peer_csuites[2] = { 0 };
|
|
415
|
+
ret = edhoc_error_get_cipher_suites(
|
|
416
|
+
&resp_ctx, csuites, ARRAY_SIZE(csuites), &csuites_len,
|
|
417
|
+
peer_csuites, ARRAY_SIZE(peer_csuites), &peer_csuites_len);
|
|
418
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
419
|
+
TEST_ASSERT_EQUAL(ARRAY_SIZE(csuites_resp), csuites_len);
|
|
420
|
+
TEST_ASSERT_EQUAL(csuites_resp[0].value, csuites[0]);
|
|
421
|
+
TEST_ASSERT_EQUAL(csuites_resp[1].value, csuites[1]);
|
|
422
|
+
TEST_ASSERT_EQUAL(ARRAY_SIZE(csuites_init), peer_csuites_len);
|
|
423
|
+
TEST_ASSERT_EQUAL(csuites_init[0].value, peer_csuites[0]);
|
|
424
|
+
TEST_ASSERT_EQUAL(csuites_init[1].value, peer_csuites[1]);
|
|
425
|
+
|
|
426
|
+
/*
|
|
427
|
+
* Point where responder can compare his and peer cipher suites.
|
|
428
|
+
* After comparison responder is able to send error message with his preferences.
|
|
429
|
+
*/
|
|
430
|
+
|
|
431
|
+
/* 4d. Responder compose error message. */
|
|
437
432
|
size_t msg_err_len = 0;
|
|
438
433
|
uint8_t msg_err[100] = { 0 };
|
|
439
434
|
|
|
@@ -442,14 +437,13 @@ void test_edhoc_cipher_suites_negotiation_scenario_2(void)
|
|
|
442
437
|
.total_entries = ARRAY_SIZE(csuites),
|
|
443
438
|
.written_entries = csuites_len,
|
|
444
439
|
};
|
|
440
|
+
|
|
445
441
|
ret = edhoc_message_error_compose(msg_err, ARRAY_SIZE(msg_err),
|
|
446
442
|
&msg_err_len, error_code_resp,
|
|
447
443
|
&error_info);
|
|
448
|
-
|
|
444
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
449
445
|
|
|
450
|
-
|
|
451
|
-
* \brief 5a. Initiator process error message.
|
|
452
|
-
*/
|
|
446
|
+
/* 5a. Initiator process error message. */
|
|
453
447
|
enum edhoc_error_code error_code_init = -1;
|
|
454
448
|
int32_t cipher_suites_init[2] = { 0 };
|
|
455
449
|
struct edhoc_error_info error_info_init = {
|
|
@@ -457,30 +451,33 @@ void test_edhoc_cipher_suites_negotiation_scenario_2(void)
|
|
|
457
451
|
.total_entries = ARRAY_SIZE(cipher_suites_init),
|
|
458
452
|
.written_entries = 0,
|
|
459
453
|
};
|
|
454
|
+
|
|
460
455
|
ret = edhoc_message_error_process(msg_err, msg_err_len,
|
|
461
456
|
&error_code_init, &error_info_init);
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
457
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
458
|
+
TEST_ASSERT_EQUAL(EDHOC_ERROR_CODE_WRONG_SELECTED_CIPHER_SUITE,
|
|
459
|
+
error_code_init);
|
|
460
|
+
TEST_ASSERT_EQUAL(ARRAY_SIZE(csuites_resp),
|
|
461
|
+
error_info_init.written_entries);
|
|
462
|
+
TEST_ASSERT_EQUAL(csuites_resp[0].value,
|
|
463
|
+
error_info_init.cipher_suites[0]);
|
|
464
|
+
TEST_ASSERT_EQUAL(csuites_resp[1].value,
|
|
465
|
+
error_info_init.cipher_suites[1]);
|
|
466
|
+
|
|
467
|
+
/* 5b. Initiator reinitialize context with new cipher suites. */
|
|
471
468
|
ret = edhoc_context_init(&init_ctx);
|
|
472
|
-
|
|
469
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
473
470
|
|
|
474
|
-
ret =
|
|
475
|
-
|
|
471
|
+
ret = edhoc_set_methods(&init_ctx, methods, ARRAY_SIZE(methods));
|
|
472
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
476
473
|
|
|
477
|
-
|
|
478
|
-
*
|
|
479
|
-
*
|
|
474
|
+
/*
|
|
475
|
+
* Because zcbor add arrays sizes statically it means that with
|
|
476
|
+
* current generated sourcer and header files we support up to 3.
|
|
480
477
|
*
|
|
481
|
-
*
|
|
478
|
+
* #define DEFAULT_MAX_QTY 3
|
|
482
479
|
*
|
|
483
|
-
*
|
|
480
|
+
* To avoid regeneration to all files, cipher suite 5 is missed.
|
|
484
481
|
*/
|
|
485
482
|
const struct edhoc_cipher_suite fixed_csuites_init[] = {
|
|
486
483
|
/* [0].value = 5, [0].ecc_key_length = 32, [0].hash_length = 32, */
|
|
@@ -491,54 +488,54 @@ void test_edhoc_cipher_suites_negotiation_scenario_2(void)
|
|
|
491
488
|
};
|
|
492
489
|
ret = edhoc_set_cipher_suites(&init_ctx, fixed_csuites_init,
|
|
493
490
|
ARRAY_SIZE(fixed_csuites_init));
|
|
494
|
-
|
|
491
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
495
492
|
|
|
496
|
-
ret = edhoc_set_connection_id(&init_ctx, conn_id_init);
|
|
497
|
-
|
|
493
|
+
ret = edhoc_set_connection_id(&init_ctx, &conn_id_init);
|
|
494
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
498
495
|
|
|
499
|
-
ret = edhoc_bind_keys(&init_ctx, edhoc_keys);
|
|
500
|
-
|
|
496
|
+
ret = edhoc_bind_keys(&init_ctx, &edhoc_keys);
|
|
497
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
501
498
|
|
|
502
|
-
ret = edhoc_bind_crypto(&init_ctx, edhoc_crypto_mocked_init);
|
|
503
|
-
|
|
499
|
+
ret = edhoc_bind_crypto(&init_ctx, &edhoc_crypto_mocked_init);
|
|
500
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
504
501
|
|
|
505
|
-
|
|
506
|
-
* \brief 5c. Initiator again compose message 1.
|
|
507
|
-
*/
|
|
502
|
+
/* 5c. Initiator again compose message 1. */
|
|
508
503
|
msg_1_len = 0;
|
|
509
504
|
memset(msg_1, 0, sizeof(msg_1));
|
|
510
505
|
|
|
511
506
|
ret = edhoc_message_1_compose(&init_ctx, msg_1, ARRAY_SIZE(msg_1),
|
|
512
507
|
&msg_1_len);
|
|
513
|
-
|
|
508
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
514
509
|
|
|
515
|
-
|
|
516
|
-
* \brief 6. Responder reinitialize context.
|
|
517
|
-
*/
|
|
510
|
+
/* 6. Responder reinitialize context. */
|
|
518
511
|
ret = edhoc_context_init(&resp_ctx);
|
|
519
|
-
|
|
512
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
520
513
|
|
|
521
|
-
ret =
|
|
522
|
-
|
|
514
|
+
ret = edhoc_set_methods(&resp_ctx, methods, ARRAY_SIZE(methods));
|
|
515
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
523
516
|
|
|
524
517
|
ret = edhoc_set_cipher_suites(&resp_ctx, csuites_resp,
|
|
525
518
|
ARRAY_SIZE(csuites_resp));
|
|
526
|
-
|
|
519
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
527
520
|
|
|
528
|
-
ret = edhoc_bind_keys(&resp_ctx, edhoc_keys);
|
|
529
|
-
|
|
521
|
+
ret = edhoc_bind_keys(&resp_ctx, &edhoc_keys);
|
|
522
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
530
523
|
|
|
531
|
-
ret = edhoc_bind_crypto(&resp_ctx, edhoc_crypto_mocked_resp);
|
|
532
|
-
|
|
524
|
+
ret = edhoc_bind_crypto(&resp_ctx, &edhoc_crypto_mocked_resp);
|
|
525
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
533
526
|
|
|
534
|
-
|
|
535
|
-
* \brief 7. Responder successfully process message 1.
|
|
536
|
-
*/
|
|
527
|
+
/* 7. Responder successfully process message 1. */
|
|
537
528
|
ret = edhoc_message_1_process(&resp_ctx, msg_1, msg_1_len);
|
|
538
|
-
|
|
529
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
539
530
|
|
|
540
531
|
error_code_resp = -1;
|
|
541
532
|
ret = edhoc_error_get_code(&resp_ctx, &error_code_resp);
|
|
542
|
-
|
|
543
|
-
|
|
533
|
+
TEST_ASSERT_EQUAL(EDHOC_SUCCESS, ret);
|
|
534
|
+
TEST_ASSERT_EQUAL(EDHOC_ERROR_CODE_SUCCESS, error_code_resp);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
TEST_GROUP_RUNNER(rfc9528_suites_negotiation)
|
|
538
|
+
{
|
|
539
|
+
RUN_TEST_CASE(rfc9528_suites_negotiation, example_1);
|
|
540
|
+
RUN_TEST_CASE(rfc9528_suites_negotiation, example_2);
|
|
544
541
|
}
|