@platformatic/rdkafka 4.0.0 → 4.1.0-alpha.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.
Files changed (293) hide show
  1. package/README.md +5 -5
  2. package/bench/seed.sh +0 -0
  3. package/binding.gyp +3 -3
  4. package/ci/prepublish.js +4 -3
  5. package/ci/update-version.js +123 -0
  6. package/config.d.ts +126 -10
  7. package/configure +0 -0
  8. package/deps/librdkafka/.semaphore/run-all-tests.yml +77 -0
  9. package/deps/librdkafka/.semaphore/semaphore-integration.yml +250 -0
  10. package/deps/librdkafka/.semaphore/semaphore.yml +67 -44
  11. package/deps/librdkafka/.semaphore/verify-linux-packages.yml +41 -0
  12. package/deps/librdkafka/CHANGELOG.md +471 -1
  13. package/deps/librdkafka/CONFIGURATION.md +29 -9
  14. package/deps/librdkafka/INTRODUCTION.md +909 -601
  15. package/deps/librdkafka/Makefile +2 -1
  16. package/deps/librdkafka/configure +0 -0
  17. package/deps/librdkafka/debian/rules +0 -0
  18. package/deps/librdkafka/dev-conf.sh +0 -0
  19. package/deps/librdkafka/examples/consumer.c +18 -8
  20. package/deps/librdkafka/examples/describe_consumer_groups.c +25 -6
  21. package/deps/librdkafka/examples/incremental_alter_configs.c +4 -5
  22. package/deps/librdkafka/examples/kafkatest_verifiable_client.cpp +26 -42
  23. package/deps/librdkafka/examples/openssl_engine_example.cpp +3 -4
  24. package/deps/librdkafka/examples/producer.cpp +2 -2
  25. package/deps/librdkafka/examples/user_scram.c +4 -5
  26. package/deps/librdkafka/examples/win_ssl_cert_store.cpp +4 -3
  27. package/deps/librdkafka/lds-gen.py +0 -0
  28. package/deps/librdkafka/mklove/Makefile.base +0 -0
  29. package/deps/librdkafka/packaging/RELEASE.md +8 -0
  30. package/deps/librdkafka/packaging/alpine/build-alpine.sh +0 -0
  31. package/deps/librdkafka/packaging/cp/README.md +4 -1
  32. package/deps/librdkafka/packaging/cp/check_features.c +12 -4
  33. package/deps/librdkafka/packaging/cp/verify-deb.sh +6 -6
  34. package/deps/librdkafka/packaging/cp/verify-packages.sh +52 -31
  35. package/deps/librdkafka/packaging/cp/verify-rpm.sh +6 -13
  36. package/deps/librdkafka/packaging/debian/docs +5 -0
  37. package/deps/librdkafka/packaging/debian/rules +0 -0
  38. package/deps/librdkafka/packaging/get_version.py +0 -0
  39. package/deps/librdkafka/packaging/homebrew/brew-update-pr.sh +0 -0
  40. package/deps/librdkafka/packaging/mingw-w64/{travis-before-install.sh → export-variables.sh} +0 -7
  41. package/deps/librdkafka/packaging/mingw-w64/semaphoreci-build.sh +1 -1
  42. package/deps/librdkafka/packaging/nuget/artifact.py +0 -0
  43. package/deps/librdkafka/packaging/nuget/cleanup-s3.py +0 -0
  44. package/deps/librdkafka/packaging/nuget/nuget.sh +0 -0
  45. package/deps/librdkafka/packaging/nuget/packaging.py +0 -0
  46. package/deps/librdkafka/packaging/nuget/push-to-nuget.sh +0 -0
  47. package/deps/librdkafka/packaging/nuget/release.py +0 -0
  48. package/deps/librdkafka/packaging/nuget/requirements.txt +3 -3
  49. package/deps/librdkafka/packaging/rpm/mock-on-docker.sh +0 -0
  50. package/deps/librdkafka/packaging/rpm/tests/run-test.sh +0 -0
  51. package/deps/librdkafka/packaging/rpm/tests/test-on-docker.sh +0 -0
  52. package/deps/librdkafka/packaging/tools/build-configurations-checks.sh +3 -1
  53. package/deps/librdkafka/packaging/tools/build-deb-package.sh +0 -0
  54. package/deps/librdkafka/packaging/tools/build-debian.sh +0 -0
  55. package/deps/librdkafka/packaging/tools/build-manylinux.sh +0 -0
  56. package/deps/librdkafka/packaging/tools/build-release-artifacts.sh +0 -0
  57. package/deps/librdkafka/packaging/tools/distro-build.sh +0 -0
  58. package/deps/librdkafka/packaging/tools/gh-release-checksums.py +0 -0
  59. package/deps/librdkafka/packaging/tools/rdutcoverage.sh +0 -0
  60. package/deps/librdkafka/packaging/tools/run-in-docker.sh +28 -0
  61. package/deps/librdkafka/packaging/tools/run-integration-tests.sh +31 -0
  62. package/deps/librdkafka/packaging/tools/run-style-check.sh +4 -0
  63. package/deps/librdkafka/packaging/tools/style-format.sh +6 -5
  64. package/deps/librdkafka/packaging/tools/update_rpcs_max_versions.py +100 -0
  65. package/deps/librdkafka/service.yml +154 -0
  66. package/deps/librdkafka/src/generate_proto.sh +0 -0
  67. package/deps/librdkafka/src/rd.h +145 -2
  68. package/deps/librdkafka/src/rdaddr.h +6 -7
  69. package/deps/librdkafka/src/rdatomic.h +15 -11
  70. package/deps/librdkafka/src/rdavg.h +3 -2
  71. package/deps/librdkafka/src/rdbase64.c +33 -2
  72. package/deps/librdkafka/src/rdbase64.h +2 -0
  73. package/deps/librdkafka/src/rdendian.h +10 -9
  74. package/deps/librdkafka/src/rdhttp.c +418 -100
  75. package/deps/librdkafka/src/rdhttp.h +23 -5
  76. package/deps/librdkafka/src/rdkafka.c +299 -145
  77. package/deps/librdkafka/src/rdkafka.h +89 -6
  78. package/deps/librdkafka/src/rdkafka_admin.c +482 -105
  79. package/deps/librdkafka/src/rdkafka_admin.h +42 -0
  80. package/deps/librdkafka/src/rdkafka_broker.c +463 -312
  81. package/deps/librdkafka/src/rdkafka_broker.h +68 -10
  82. package/deps/librdkafka/src/rdkafka_buf.c +8 -5
  83. package/deps/librdkafka/src/rdkafka_buf.h +4 -3
  84. package/deps/librdkafka/src/rdkafka_cert.c +25 -1
  85. package/deps/librdkafka/src/rdkafka_cert.h +4 -3
  86. package/deps/librdkafka/src/rdkafka_cgrp.c +468 -143
  87. package/deps/librdkafka/src/rdkafka_cgrp.h +36 -2
  88. package/deps/librdkafka/src/rdkafka_conf.c +526 -102
  89. package/deps/librdkafka/src/rdkafka_conf.h +68 -4
  90. package/deps/librdkafka/src/rdkafka_feature.c +472 -35
  91. package/deps/librdkafka/src/rdkafka_feature.h +2 -0
  92. package/deps/librdkafka/src/rdkafka_fetcher.c +22 -2
  93. package/deps/librdkafka/src/rdkafka_fetcher.h +2 -2
  94. package/deps/librdkafka/src/rdkafka_int.h +84 -46
  95. package/deps/librdkafka/src/rdkafka_metadata.c +221 -136
  96. package/deps/librdkafka/src/rdkafka_metadata.h +15 -11
  97. package/deps/librdkafka/src/rdkafka_metadata_cache.c +279 -73
  98. package/deps/librdkafka/src/rdkafka_mock.c +795 -19
  99. package/deps/librdkafka/src/rdkafka_mock.h +119 -0
  100. package/deps/librdkafka/src/rdkafka_mock_cgrp.c +1298 -132
  101. package/deps/librdkafka/src/rdkafka_mock_handlers.c +345 -49
  102. package/deps/librdkafka/src/rdkafka_mock_int.h +180 -61
  103. package/deps/librdkafka/src/rdkafka_msg.c +35 -19
  104. package/deps/librdkafka/src/rdkafka_msg.h +3 -3
  105. package/deps/librdkafka/src/rdkafka_msgset_writer.c +14 -10
  106. package/deps/librdkafka/src/rdkafka_offset.c +33 -5
  107. package/deps/librdkafka/src/rdkafka_op.c +1 -1
  108. package/deps/librdkafka/src/rdkafka_op.h +45 -21
  109. package/deps/librdkafka/src/rdkafka_partition.c +118 -23
  110. package/deps/librdkafka/src/rdkafka_partition.h +16 -7
  111. package/deps/librdkafka/src/rdkafka_proto.h +4 -1
  112. package/deps/librdkafka/src/rdkafka_protocol.h +1 -0
  113. package/deps/librdkafka/src/rdkafka_queue.c +125 -48
  114. package/deps/librdkafka/src/rdkafka_queue.h +19 -0
  115. package/deps/librdkafka/src/rdkafka_range_assignor.c +1 -1
  116. package/deps/librdkafka/src/rdkafka_request.c +336 -64
  117. package/deps/librdkafka/src/rdkafka_request.h +24 -1
  118. package/deps/librdkafka/src/rdkafka_sasl.c +5 -3
  119. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +14 -10
  120. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +1166 -89
  121. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +13 -3
  122. package/deps/librdkafka/src/rdkafka_sasl_plain.c +3 -3
  123. package/deps/librdkafka/src/rdkafka_sasl_scram.c +4 -3
  124. package/deps/librdkafka/src/rdkafka_ssl.c +306 -81
  125. package/deps/librdkafka/src/rdkafka_ssl.h +22 -0
  126. package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4 -0
  127. package/deps/librdkafka/src/rdkafka_telemetry.c +80 -23
  128. package/deps/librdkafka/src/rdkafka_telemetry_encode.c +5 -1
  129. package/deps/librdkafka/src/rdkafka_telemetry_encode.h +20 -20
  130. package/deps/librdkafka/src/rdkafka_topic.c +220 -137
  131. package/deps/librdkafka/src/rdkafka_topic.h +14 -8
  132. package/deps/librdkafka/src/rdkafka_transport.c +59 -47
  133. package/deps/librdkafka/src/rdkafka_transport.h +5 -0
  134. package/deps/librdkafka/src/rdkafka_txnmgr.c +6 -1
  135. package/deps/librdkafka/src/rdmap.c +6 -1
  136. package/deps/librdkafka/src/rdrand.c +11 -1
  137. package/deps/librdkafka/src/rdtime.h +48 -17
  138. package/deps/librdkafka/src/rdunittest.c +42 -25
  139. package/deps/librdkafka/src/rdunittest.h +2 -0
  140. package/deps/librdkafka/src/rdwin32.h +1 -1
  141. package/deps/librdkafka/src/regexp.c +47 -42
  142. package/deps/librdkafka/src/tinycthread_extra.c +45 -21
  143. package/deps/librdkafka/src/tinycthread_extra.h +7 -3
  144. package/deps/librdkafka/src-cpp/rdkafkacpp.h +28 -2
  145. package/deps/librdkafka/tests/0001-multiobj.c +4 -0
  146. package/deps/librdkafka/tests/0004-conf.c +103 -36
  147. package/deps/librdkafka/tests/0009-mock_cluster.c +1 -0
  148. package/deps/librdkafka/tests/0011-produce_batch.c +2 -1
  149. package/deps/librdkafka/tests/0016-client_swname.c +18 -3
  150. package/deps/librdkafka/tests/0017-compression.c +6 -8
  151. package/deps/librdkafka/tests/0018-cgrp_term.c +8 -3
  152. package/deps/librdkafka/tests/0021-rkt_destroy.c +1 -0
  153. package/deps/librdkafka/tests/0022-consume_batch.c +4 -1
  154. package/deps/librdkafka/tests/0026-consume_pause.c +12 -14
  155. package/deps/librdkafka/tests/0028-long_topicnames.c +1 -1
  156. package/deps/librdkafka/tests/0029-assign_offset.c +6 -8
  157. package/deps/librdkafka/tests/0030-offset_commit.c +2 -2
  158. package/deps/librdkafka/tests/0033-regex_subscribe.c +33 -17
  159. package/deps/librdkafka/tests/0034-offset_reset.c +25 -4
  160. package/deps/librdkafka/tests/0036-partial_fetch.c +1 -0
  161. package/deps/librdkafka/tests/0038-performance.c +1 -0
  162. package/deps/librdkafka/tests/0040-io_event.c +11 -5
  163. package/deps/librdkafka/tests/0041-fetch_max_bytes.c +1 -0
  164. package/deps/librdkafka/tests/0044-partition_cnt.c +3 -2
  165. package/deps/librdkafka/tests/0045-subscribe_update.c +284 -20
  166. package/deps/librdkafka/tests/0047-partial_buf_tmout.c +1 -0
  167. package/deps/librdkafka/tests/0048-partitioner.c +1 -1
  168. package/deps/librdkafka/tests/0050-subscribe_adds.c +1 -0
  169. package/deps/librdkafka/tests/0051-assign_adds.c +1 -0
  170. package/deps/librdkafka/tests/0052-msg_timestamps.c +22 -4
  171. package/deps/librdkafka/tests/0053-stats_cb.cpp +12 -20
  172. package/deps/librdkafka/tests/0055-producer_latency.c +176 -3
  173. package/deps/librdkafka/tests/0056-balanced_group_mt.c +6 -2
  174. package/deps/librdkafka/tests/0058-log.cpp +3 -3
  175. package/deps/librdkafka/tests/0059-bsearch.cpp +8 -4
  176. package/deps/librdkafka/tests/0061-consumer_lag.cpp +25 -5
  177. package/deps/librdkafka/tests/0067-empty_topic.cpp +3 -0
  178. package/deps/librdkafka/tests/0068-produce_timeout.c +21 -23
  179. package/deps/librdkafka/tests/0069-consumer_add_parts.c +3 -7
  180. package/deps/librdkafka/tests/0075-retry.c +38 -1
  181. package/deps/librdkafka/tests/0076-produce_retry.c +2 -0
  182. package/deps/librdkafka/tests/0077-compaction.c +8 -2
  183. package/deps/librdkafka/tests/0080-admin_ut.c +34 -4
  184. package/deps/librdkafka/tests/0081-admin.c +455 -155
  185. package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +4 -0
  186. package/deps/librdkafka/tests/0083-cb_event.c +8 -3
  187. package/deps/librdkafka/tests/0084-destroy_flags.c +14 -18
  188. package/deps/librdkafka/tests/0085-headers.cpp +4 -0
  189. package/deps/librdkafka/tests/0086-purge.c +40 -7
  190. package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +1 -1
  191. package/deps/librdkafka/tests/0089-max_poll_interval.c +12 -7
  192. package/deps/librdkafka/tests/0090-idempotence.c +1 -2
  193. package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +5 -7
  194. package/deps/librdkafka/tests/0092-mixed_msgver.c +6 -0
  195. package/deps/librdkafka/tests/0093-holb.c +8 -5
  196. package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +1 -0
  197. package/deps/librdkafka/tests/0097-ssl_verify.cpp +262 -70
  198. package/deps/librdkafka/tests/0098-consumer-txn.cpp +16 -16
  199. package/deps/librdkafka/tests/0099-commit_metadata.c +1 -1
  200. package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +1 -1
  201. package/deps/librdkafka/tests/0102-static_group_rebalance.c +317 -16
  202. package/deps/librdkafka/tests/0103-transactions.c +7 -7
  203. package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +1 -0
  204. package/deps/librdkafka/tests/0105-transactions_mock.c +18 -11
  205. package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +35 -14
  206. package/deps/librdkafka/tests/0107-topic_recreate.c +2 -2
  207. package/deps/librdkafka/tests/0109-auto_create_topics.cpp +86 -26
  208. package/deps/librdkafka/tests/0110-batch_size.cpp +1 -2
  209. package/deps/librdkafka/tests/0112-assign_unknown_part.c +3 -14
  210. package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +248 -104
  211. package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +3 -3
  212. package/deps/librdkafka/tests/0115-producer_auth.cpp +4 -1
  213. package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +7 -5
  214. package/deps/librdkafka/tests/0117-mock_errors.c +15 -5
  215. package/deps/librdkafka/tests/0118-commit_rebalance.c +41 -8
  216. package/deps/librdkafka/tests/0119-consumer_auth.cpp +20 -1
  217. package/deps/librdkafka/tests/0120-asymmetric_subscription.c +8 -3
  218. package/deps/librdkafka/tests/0125-immediate_flush.c +1 -1
  219. package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +323 -8
  220. package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +1 -0
  221. package/deps/librdkafka/tests/0132-strategy_ordering.c +12 -4
  222. package/deps/librdkafka/tests/0133-ssl_keys.c +28 -6
  223. package/deps/librdkafka/tests/0137-barrier_batch_consume.c +24 -14
  224. package/deps/librdkafka/tests/0139-offset_validation_mock.c +510 -2
  225. package/deps/librdkafka/tests/0140-commit_metadata.cpp +1 -1
  226. package/deps/librdkafka/tests/0142-reauthentication.c +37 -17
  227. package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +39 -40
  228. package/deps/librdkafka/tests/0146-metadata_mock.c +76 -15
  229. package/deps/librdkafka/tests/0147-consumer_group_consumer_mock.c +952 -0
  230. package/deps/librdkafka/tests/0148-offset_fetch_commit_error_mock.c +563 -0
  231. package/deps/librdkafka/tests/0149-broker-same-host-port.c +140 -0
  232. package/deps/librdkafka/tests/0150-telemetry_mock.c +9 -6
  233. package/deps/librdkafka/tests/0151-purge-brokers.c +566 -0
  234. package/deps/librdkafka/tests/0152-rebootstrap.c +59 -0
  235. package/deps/librdkafka/tests/0153-memberid.c +128 -0
  236. package/deps/librdkafka/tests/CMakeLists.txt +6 -0
  237. package/deps/librdkafka/tests/LibrdkafkaTestApp.py +34 -9
  238. package/deps/librdkafka/tests/autotest.sh +0 -0
  239. package/deps/librdkafka/tests/broker_version_tests.py +0 -0
  240. package/deps/librdkafka/tests/buildbox.sh +0 -0
  241. package/deps/librdkafka/tests/cleanup-checker-tests.sh +0 -0
  242. package/deps/librdkafka/tests/cluster_testing.py +0 -0
  243. package/deps/librdkafka/tests/delete-test-topics.sh +0 -0
  244. package/deps/librdkafka/tests/fixtures/oauthbearer/jwt_assertion_template.json +10 -0
  245. package/deps/librdkafka/tests/fixtures/ssl/client.keystore.intermediate.p12 +0 -0
  246. package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
  247. package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.intermediate.pem +72 -0
  248. package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +42 -101
  249. package/deps/librdkafka/tests/fixtures/ssl/client2.intermediate.key +46 -0
  250. package/deps/librdkafka/tests/fixtures/ssl/client2.key +41 -29
  251. package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +112 -37
  252. package/deps/librdkafka/tests/gen-ssl-certs.sh +0 -0
  253. package/deps/librdkafka/tests/interactive_broker_version.py +0 -0
  254. package/deps/librdkafka/tests/java/Makefile +2 -1
  255. package/deps/librdkafka/tests/java/run-class.sh +0 -0
  256. package/deps/librdkafka/tests/lz4_manual_test.sh +0 -0
  257. package/deps/librdkafka/tests/multi-broker-version-test.sh +0 -0
  258. package/deps/librdkafka/tests/parse-refcnt.sh +0 -0
  259. package/deps/librdkafka/tests/performance_plot.py +0 -0
  260. package/deps/librdkafka/tests/requirements.txt +1 -1
  261. package/deps/librdkafka/tests/run-all-tests.sh +79 -0
  262. package/deps/librdkafka/tests/run-consumer-tests.sh +0 -0
  263. package/deps/librdkafka/tests/run-producer-tests.sh +0 -0
  264. package/deps/librdkafka/tests/run-test-batches.py +157 -0
  265. package/deps/librdkafka/tests/run-test.sh +0 -0
  266. package/deps/librdkafka/tests/sasl_test.py +0 -0
  267. package/deps/librdkafka/tests/test.c +478 -18
  268. package/deps/librdkafka/tests/test.h +62 -13
  269. package/deps/librdkafka/tests/testcpp.cpp +6 -1
  270. package/deps/librdkafka/tests/testcpp.h +30 -2
  271. package/deps/librdkafka/tests/testshared.h +16 -2
  272. package/deps/librdkafka/tests/tools/stats/graph.py +0 -0
  273. package/deps/librdkafka/tests/tools/stats/to_csv.py +1 -1
  274. package/deps/librdkafka/tests/trivup/trivup-0.14.0.tar.gz +0 -0
  275. package/deps/librdkafka/tests/until-fail.sh +0 -0
  276. package/deps/librdkafka/tests/xxxx-metadata.cpp +1 -1
  277. package/deps/librdkafka/vcpkg.json +1 -1
  278. package/deps/librdkafka/win32/setup-msys2.ps1 +24 -8
  279. package/deps/librdkafka/win32/setup-vcpkg.ps1 +28 -6
  280. package/deps/librdkafka/win32/tests/tests.vcxproj +6 -0
  281. package/deps/librdkafka/win32/wingetopt.h +5 -4
  282. package/errors.d.ts +27 -1
  283. package/lib/error.js +29 -3
  284. package/make_docs.sh +0 -0
  285. package/package.json +12 -13
  286. package/run_docker.sh +0 -0
  287. package/src/callbacks.cc +6 -9
  288. package/src/callbacks.h +1 -5
  289. package/test/kafka-consumer-worker.js +10 -7
  290. package/test/kafka-consumer.spec.js +32 -21
  291. package/deps/librdkafka/.semaphore/project.yml +0 -43
  292. package/deps/librdkafka/.semaphore/project_public.yml +0 -20
  293. package/deps/librdkafka/win32/install-openssl.ps1 +0 -33
@@ -0,0 +1,128 @@
1
+ /*
2
+ * librdkafka - Apache Kafka C library
3
+ *
4
+ * Copyright (c) 2025, Confluent Inc.
5
+ * All rights reserved.
6
+ *
7
+ * Redistribution and use in source and binary forms, with or without
8
+ * modification, are permitted provided that the following conditions are met:
9
+ *
10
+ * 1. Redistributions of source code must retain the above copyright notice,
11
+ * this list of conditions and the following disclaimer.
12
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ * this list of conditions and the following disclaimer in the documentation
14
+ * and/or other materials provided with the distribution.
15
+ *
16
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
+ * POSSIBILITY OF SUCH DAMAGE.
27
+ */
28
+
29
+ #include "test.h"
30
+ typedef struct consumer_s {
31
+ const char *group_id;
32
+ char *memberid;
33
+ } consumer_t;
34
+
35
+ static int
36
+ is_fatal_cb(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason) {
37
+ if (err == RD_KAFKA_RESP_ERR__TIMED_OUT)
38
+ return 0;
39
+ return 1;
40
+ }
41
+
42
+ static int consumer_thread(void *arg) {
43
+ rd_kafka_conf_t *conf;
44
+ rd_kafka_t *consumer;
45
+ consumer_t *consumer_args = arg;
46
+
47
+ test_curr->is_fatal_cb = is_fatal_cb;
48
+
49
+ test_conf_init(&conf, NULL, 60);
50
+
51
+ consumer =
52
+ test_create_consumer(consumer_args->group_id, NULL, conf, NULL);
53
+
54
+ consumer_args->memberid = rd_kafka_memberid(consumer);
55
+
56
+ test_consumer_close(consumer);
57
+ rd_kafka_destroy(consumer);
58
+ test_curr->is_fatal_cb = NULL;
59
+ return 0;
60
+ }
61
+
62
+ void do_test_unique_memberid() {
63
+ int i;
64
+ int j;
65
+ int have_only_unique_memberids = 1;
66
+ const char *group_id = test_mk_topic_name("0153-memberid", 1);
67
+
68
+ #define CONSUMER_CNT 500
69
+ thrd_t thread_id[CONSUMER_CNT];
70
+ consumer_t consumer_args[CONSUMER_CNT];
71
+
72
+ SUB_TEST_QUICK();
73
+
74
+ for (i = 0; i < CONSUMER_CNT; i++) {
75
+ consumer_args[i].group_id = group_id;
76
+ consumer_args[i].memberid = NULL;
77
+ thrd_create(&thread_id[i], consumer_thread, &consumer_args[i]);
78
+ }
79
+
80
+ for (i = 0; i < CONSUMER_CNT; i++) {
81
+ thrd_join(thread_id[i], NULL);
82
+ }
83
+
84
+ for (i = 0; i < CONSUMER_CNT; i++) {
85
+ if (have_only_unique_memberids) {
86
+ for (j = i + 1; j < CONSUMER_CNT; j++) {
87
+ if (strcmp(consumer_args[i].memberid,
88
+ consumer_args[j].memberid) == 0) {
89
+ TEST_SAY(
90
+ "Consumer %d has the same member "
91
+ "ID as consumer %d: %s\n",
92
+ i, j, consumer_args[i].memberid);
93
+ have_only_unique_memberids = 0;
94
+ break;
95
+ }
96
+ }
97
+ }
98
+ rd_free(consumer_args[i].memberid);
99
+ }
100
+
101
+ if (have_only_unique_memberids) {
102
+ TEST_SAY("All %d consumers have unique member IDs\n",
103
+ CONSUMER_CNT);
104
+ } else {
105
+ TEST_FAIL("Not all consumers have unique member IDs\n");
106
+ }
107
+
108
+ SUB_TEST_PASS();
109
+ }
110
+
111
+ int main_0153_memberid(int argc, char **argv) {
112
+
113
+ if (test_consumer_group_protocol_classic()) {
114
+ TEST_SKIP(
115
+ "Member ID is not generated on the client side in classic "
116
+ "protocol, skipping test");
117
+ return 0;
118
+ }
119
+
120
+ if (!strcmp(test_mode, "valgrind")) {
121
+ TEST_SKIP("Test is too heavy for valgrind, skipping it");
122
+ return 0;
123
+ }
124
+
125
+ do_test_unique_memberid();
126
+
127
+ return 0;
128
+ }
@@ -137,7 +137,13 @@ set(
137
137
  0144-idempotence_mock.c
138
138
  0145-pause_resume_mock.c
139
139
  0146-metadata_mock.c
140
+ 0147-consumer_group_consumer_mock.c
141
+ 0148-offset_fetch_commit_error_mock.c
142
+ 0149-broker-same-host-port.c
140
143
  0150-telemetry_mock.c
144
+ 0151-purge-brokers.c
145
+ 0152-rebootstrap.c
146
+ 0153-memberid.c
141
147
  8000-idle.cpp
142
148
  8001-fetch_from_follower_mock_manual.c
143
149
  test.c
@@ -12,6 +12,7 @@ from trivup.apps.KafkaBrokerApp import KafkaBrokerApp
12
12
  from trivup.apps.KerberosKdcApp import KerberosKdcApp
13
13
  from trivup.apps.OauthbearerOIDCApp import OauthbearerOIDCApp
14
14
 
15
+ import os
15
16
  import json
16
17
 
17
18
 
@@ -47,10 +48,6 @@ class LibrdkafkaTestApp(App):
47
48
  if version.startswith('0.9') or version.startswith('0.8'):
48
49
  conf_blob.append('api.version.request=false')
49
50
  conf_blob.append('broker.version.fallback=%s' % version)
50
- else:
51
- # any broker version with ApiVersion support
52
- conf_blob.append('broker.version.fallback=0.10.0.0')
53
- conf_blob.append('api.version.fallback.ms=0')
54
51
 
55
52
  # SASL (only one mechanism supported at a time)
56
53
  mech = self.conf.get('sasl_mechanisms', '').split(',')[0]
@@ -91,12 +88,28 @@ class LibrdkafkaTestApp(App):
91
88
  self.env_add(
92
89
  'EXPIRED_TOKEN_OIDC_URL',
93
90
  oidc.conf.get('expired_url'))
91
+ self.env_add(
92
+ 'EXPIRED_TOKEN_OIDC_URL',
93
+ oidc.conf.get('expired_url'))
94
+ self.env['OAUTHBEARER_CLIENT_PRIVATE_KEY'] = \
95
+ oidc.conf['sasl_oauthbearer_client_private_key_path']
96
+ self.env['OAUTHBEARER_CLIENT_PRIVATE_KEY_ENCRYPTED'] = \
97
+ oidc.conf[
98
+ 'sasl_oauthbearer_client_private_key_encrypted_path'] # noqa: E501
99
+ self.env['OAUTHBEARER_CLIENT_PRIVATE_KEY_PASSWORD'] = \
100
+ oidc.conf[
101
+ 'sasl_oauthbearer_client_private_key_password']
94
102
  else:
95
103
  conf_blob.append(
96
104
  'enable.sasl.oauthbearer.unsecure.jwt=true\n')
97
- conf_blob.append(
98
- 'sasl.oauthbearer.config=%s\n' %
99
- self.conf.get('sasl_oauthbearer_config'))
105
+ if not self.conf.get('sasl_oauthbearer_config'):
106
+ conf_blob.append(
107
+ 'sasl.oauthbearer.config=scope=requiredScope'
108
+ ' principal=admin\n')
109
+ else:
110
+ conf_blob.append(
111
+ 'sasl.oauthbearer.config=%s\n' %
112
+ self.conf.get('sasl_oauthbearer_config'))
100
113
 
101
114
  elif mech == 'GSSAPI':
102
115
  self.security_protocol = 'SASL_PLAINTEXT'
@@ -128,8 +141,11 @@ class LibrdkafkaTestApp(App):
128
141
  # SSL config
129
142
  if getattr(cluster, 'ssl', None) is not None:
130
143
  ssl = cluster.ssl
144
+ ssl_intermediate_ca = cluster.conf.get(
145
+ 'ssl_intermediate_ca', False)
131
146
 
132
- key = ssl.create_cert('librdkafka%s' % self.appid)
147
+ key = ssl.create_cert('librdkafka%s' % self.appid,
148
+ through_intermediate=ssl_intermediate_ca)
133
149
 
134
150
  conf_blob.append('ssl.ca.location=%s' % ssl.ca['pem'])
135
151
  conf_blob.append('ssl.certificate.location=%s' % key['pub']['pem'])
@@ -141,6 +157,13 @@ class LibrdkafkaTestApp(App):
141
157
  for k, v in ssl.ca.items():
142
158
  self.env_add('SSL_ca_{}'.format(k), v)
143
159
 
160
+ for k, v in ssl.unused_ca.items():
161
+ self.env['SSL_unused_ca_{}'.format(k)] = v
162
+
163
+ self.env['SSL_all_cas_pem'] = ssl.all_cas['pem']
164
+ self.env['SSL_client_auth'] = cluster.conf.get(
165
+ 'ssl_client_auth', 'required')
166
+
144
167
  # Set envs for all generated keys so tests can find them.
145
168
  for k, v in key.items():
146
169
  if isinstance(v, dict):
@@ -181,7 +204,9 @@ class LibrdkafkaTestApp(App):
181
204
 
182
205
  self.env_add('TEST_SCENARIO', scenario)
183
206
  self.env_add('RDKAFKA_TEST_CONF', self.test_conf_file)
184
- self.env_add('TEST_KAFKA_VERSION', version)
207
+ test_kafka_version = version
208
+ if 'TEST_KAFKA_VERSION' not in os.environ:
209
+ self.env_add('TEST_KAFKA_VERSION', test_kafka_version, False)
185
210
  self.env_add('TRIVUP_ROOT', cluster.instance_path())
186
211
 
187
212
  if self.test_mode != 'bash':
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,10 @@
1
+ {
2
+ "header": {},
3
+ "payload": {
4
+ "sub": "testuser-template",
5
+ "aud": "https://token_endpoint/token",
6
+ "iss": "my_service",
7
+ "target_audience": "kafka-cluster",
8
+ "jti":"94232d62-8b0c-406b-ba12-f92d7f522253"
9
+ }
10
+ }
@@ -0,0 +1,72 @@
1
+ Bag Attributes
2
+ friendlyName: client2
3
+ localKeyID: 54 69 6D 65 20 31 37 33 33 33 39 37 39 33 32 32 30 34
4
+ subject=C=, ST=, L=, O=, OU=, CN=client2
5
+ issuer=CN=caintermediate
6
+ -----BEGIN CERTIFICATE-----
7
+ MIID0zCCArugAwIBAgIUVoJRGAe9c4D8vIy3Q+Vc/2c7+5EwDQYJKoZIhvcNAQEL
8
+ BQAwGTEXMBUGA1UEAwwOY2FpbnRlcm1lZGlhdGUwIBcNMjQxMjA1MTEyNTMxWhgP
9
+ MjA1MjA0MjExMTI1MzFaMEkxCTAHBgNVBAYTADEJMAcGA1UECBMAMQkwBwYDVQQH
10
+ EwAxCTAHBgNVBAoTADEJMAcGA1UECxMAMRAwDgYDVQQDEwdjbGllbnQyMIIBojAN
11
+ BgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAt7Vw+t0d1kaUPk16pcpelrZ6vCIc
12
+ XO16ZOxV9aQw+PVBKuTYAJHVCEeW0YViT5Ww5QVSuHTfFgCJPPfXKwgJIUP9izDj
13
+ alFnp7kguAFzg+3P1atLMGV3sYljKPI+4FZzpRJdPpSrVUhUWawAnjHO/gn5eZl4
14
+ 86GdsZqw+Ui/eOqjXCvRMpznF8bugbCkgB0wUSL2UN82axTsu+n+nc0ejLoerQ4W
15
+ cBbzrt0lO0OvbIxBATXWFLbsek9LAJOAaWUizAxvzG3grnJY/Gl0c+cv8hCJgWP0
16
+ COFxPsmK/gctxBTrEvWMaV0JhnjMiNKYjxKUKXDN6Rq7XGEfvFo6HHt9MKAlPQ2i
17
+ kUOtBpY56wRxGo6wTclYgOm/xw3V6mnT1a21B03/hGtpatFGNCR5pxmJADSd8G50
18
+ SgiqRPOvYgfzudzy4kpsYR8DFQyJf3d0zr20I1lNU2KQsD9Lci331Og7B8PRDJoK
19
+ ecJCPR8eHWk0TOQUvqfrPJuvdC7Cg/850ayDAgMBAAGjYTBfMB0GA1UdEQQWMBSC
20
+ B2NsaWVudDKCCWxvY2FsaG9zdDAdBgNVHQ4EFgQU9tPxo+fe36GLolPAq3vVPw1v
21
+ YRUwHwYDVR0jBBgwFoAUiGB7UOmXkgIJPg+fUePUvJbOcOowDQYJKoZIhvcNAQEL
22
+ BQADggEBAG2xnVx5vK3heP5yeifP3p5vCB4fp8JmRBcwLSfpN0waA12jfTJYNSC1
23
+ XQELWKrdeHYmZ2fLCgWN45ztsW3cAV1q4kdQAF/4mZlQKadzSWD2iMGtaJzbKqjU
24
+ sEBuu7Z40ES10qek3GxYXx/+kCFb/f+g10R2+kiFj2QavcQ6bKmafDJnGekgAYV5
25
+ UaIlBv7/WGFg3JGIS3qjQ7xjIiDA+4Uo6TxZ3PQ0rA5I07skLh5jn8fibRli1125
26
+ Cmi4E/l0tvDsxblcS4EQa0hxdc9VOcmkVq5p5HX5inlzS977uvCNXkVG5SqZ1Ha5
27
+ 3RKol0N9ox+VJDS+Z5Ed9A9og/NyUVA=
28
+ -----END CERTIFICATE-----
29
+ Bag Attributes
30
+ friendlyName: CN=caintermediate
31
+ subject=CN=caintermediate
32
+ issuer=CN=caroot
33
+ -----BEGIN CERTIFICATE-----
34
+ MIIC+jCCAeKgAwIBAgIUTz8YA5VECgKhbOiJnM+9bLMQUlcwDQYJKoZIhvcNAQEL
35
+ BQAwETEPMA0GA1UEAwwGY2Fyb290MB4XDTI0MTIwNTExMjUxOFoXDTM0MTIwMzEx
36
+ MjUxOFowGTEXMBUGA1UEAwwOY2FpbnRlcm1lZGlhdGUwggEiMA0GCSqGSIb3DQEB
37
+ AQUAA4IBDwAwggEKAoIBAQCdNNgDcocxK8rBsXjDja2XIsfX1dIvvhVbtCH/aAap
38
+ +ZrpEOybRtbts627N/bAx+kQw/gX2gzJe2MgOeA/G7SDxdl8HO9jJngbow0Nb8Ne
39
+ PmI4kabFFjGqhxgVBAbxX21lJ/F/CgyIaFGddr3rT+S9RcX8IxZbDD1kMFotrSDL
40
+ SyS6UFEYDK5L2hxw9e5NlGjttnXvIVGJo93hNOh1ScsiBj50xaw643Dq3zIzd6X6
41
+ urGpwnZzqUbs0gBvnNEbjqk8+t4M2HMviLb9g7aXYPvNIPdbmnxyHhLfvmnsVnb/
42
+ U7sbf1NdS0HogH+rgUlg9Vat4srtY8iawhQc5tgYcfHrAgMBAAGjQjBAMB0GA1Ud
43
+ DgQWBBSIYHtQ6ZeSAgk+D59R49S8ls5w6jAfBgNVHSMEGDAWgBQarga3f9IwY5mp
44
+ 614dyWCMnW74FjANBgkqhkiG9w0BAQsFAAOCAQEAECeH9/m0O1tAPRji9zEDgzCR
45
+ GZyB4LRIhG249vfCDp8IUCYqyEDe4pYezF1c1VfYVHas7CsvBcgB2mh9/zQDzASZ
46
+ 2szHKmdOAroX57jyKNDzWuRu+X3z7DVKsUFB59iR3zGxsTZqPVtH1+C3f6qnB79B
47
+ P4HQza+kIX/fkfysQF1ekItFbWI9uzN/zPJktuekhC+6lsuS8KiM752EvUV9+vdJ
48
+ X5wb0MH4XSPgCIzN6WNf/tpse+EqbTBO5v8L/MqOF1Pr/tJNx644+e01t4DPVyEF
49
+ 5G7e3aLApPmzAMTgpLnbZ1E7AiSaMnaqFwwcU9k7hl/12C0l09ZXEzJIHBhJhg==
50
+ -----END CERTIFICATE-----
51
+ Bag Attributes
52
+ friendlyName: CN=caroot
53
+ subject=CN=caroot
54
+ issuer=CN=caroot
55
+ -----BEGIN CERTIFICATE-----
56
+ MIIC0TCCAbmgAwIBAgIUMkCrt6VwuFKkq2u3jR+nM6uV1BMwDQYJKoZIhvcNAQEL
57
+ BQAwETEPMA0GA1UEAwwGY2Fyb290MB4XDTI0MTIwNTExMjUxN1oXDTI1MDEwNDEx
58
+ MjUxN1owETEPMA0GA1UEAwwGY2Fyb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
59
+ MIIBCgKCAQEArL32r0FPpZArzoRi62K27uLp407qTT9Qux2FwdFHxNJCy2nhSaHg
60
+ SFsvKaSio3J2xF8y0R6NG9U0iA630ZUXXJBcGWy4BdjIiFPJPaC7nKzdVEIpOezT
61
+ u+/VmsTamNRngNvLQi1o2OPne4V0TlSito9KOhZMEd8eJT+WQtgw5x+LpEFAdUD9
62
+ urHVYYGq5+locfiN/P9BWvTjYoYJ8YFcpzxuNQA82r/j8h0o8L6pwtWa1xchcR2b
63
+ mq2ME8gm1bPX7ZndpKW5zdBc7hwThuTwB0RpuucdsYmfFoSTCBZ3EBlI3Ta2XwGw
64
+ q2E3XJhtW5ceovxHihAIvHRuXCtWT8GIdwIDAQABoyEwHzAdBgNVHQ4EFgQUGq4G
65
+ t3/SMGOZqeteHclgjJ1u+BYwDQYJKoZIhvcNAQELBQADggEBACtArlYP9sLQDxzF
66
+ 7MbYKPt8dsRYsbO2TlIaB7OEMUVbAKyetizGFcW8I7ezqPYn4uEQqdZmo1mMu6ou
67
+ D1nK0sUsWSq5n1rgZJJoi+o6h71pfBlLYeyKZ5bhnKLkt5s50sInTGdqkUfJdM05
68
+ 3HTV6TdVN71Jd8U/Pp2vu0+UteuLBFuDbYaHiyZunUL/tH6FR2CzkR/NxiytPwE2
69
+ KxTp3KdaMXq6+Hf9OBzCbhrv+o/S8OCWLHCt+caWhsOk8/xvn+78mn+2bFwH+uG8
70
+ KB4ynut6hO/ms0hIcTJZD1uqtdollsvzoN2OEj3WI+LWYTkmAQF7H3A9juT3l8GT
71
+ 0+w5Qoc=
72
+ -----END CERTIFICATE-----
@@ -1,109 +1,50 @@
1
1
  Bag Attributes
2
2
  friendlyName: client2
3
- localKeyID: 54 69 6D 65 20 31 36 36 35 31 35 35 35 36 34 38 38 32
4
- Key Attributes: <No Attributes>
5
- -----BEGIN PRIVATE KEY-----
6
- MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQDMrI+QK7Q6L9TU
7
- cVjEbl4sMu3KhXgs71JNgQl8joFPVjb3PZF6YHegZo0FAOU1F6lysD3NNnI21HIz
8
- LbCe6BJRogNFKtcFvWS6uQok1HperDO/DVQkH9ARAcvlxE/I6dPbb1YCi7EMHrjM
9
- Dle+NXWV3nKCe7BcMkETkki5Bj5fNA5oa/pmS0gSS/HXnB8rxyFv4mB/R+oGC1wO
10
- WOvgn6ip5bKdjMEEnyqYsDCH8w3xYkKlZ6Ag5w1yxnr6D41J64Go2R62MuLrScVr
11
- +4CM+XJl3Y08+emlCz5m5wuh6A31bp7MFY+f3Gs9AI5qiN3tyjZ//EzoIrfb68tQ
12
- td+UvT4fAgMBAAECggEALoLkWQHlgfeOqPxdDL57/hVQvl4YUjXMgTpamoiT0CCq
13
- ewLtxV6YsMW9NC7g53DKG/r7AGBoEhezH/g5E9NvHkfv8E7s8Cv68QfNy1LRwCPn
14
- 2nm/7jmggczjtgInk2O3tj0V0ZxHDpcIra5wuBPT9cvIP+i1yi3NZhIvHoTRtbZp
15
- lWelovML6SGcbmYDZHWwL8C/quX2/Vp72dJa7ySatlJCe8lcdolazUAhe6W3FGf2
16
- DojupWddAbwcogQsjQ0WNgtIov5JDF1vHjLkw0uCvh24P+DYBA0JjHybLTR70Ypp
17
- POwCV5O96JntWfcXYivi4LQrSDFCIDyDwwrbkIkdoQKBgQDuNesfC7C0LJikB+I1
18
- UgrDJiu4lFVoXwbaWRRuZD58j0mDGeTY9gZzBJ7pJgv3qJbfk1iwpUU25R2Np946
19
- h63EqpSSoP/TnMBePUBjnu+C5iXxk2KPjNb9Xu8m4Q8tgYvYf5IJ7iLllY2uiT6B
20
- e+0EGAEPvP1HLbPP22IUMsG6jwKBgQDb9X6fHMeHtP6Du+qhqiMmLK6R2lB7cQ1j
21
- 2FSDySekabucaFhDpK3n2klw2MfF2oZHMrxAfYFySV1kGMil4dvFox8mGBJHc/d5
22
- lNXGNOfQbVV8P1NRjaPwjyAAgAPZfZgFr+6s+pawMRGnGw5Y6p03sLnD5FWU9Wfa
23
- vM6RLE5LcQJ/FHiNvB1FEjbC51XGGs7yHdMp7rLQpCeGbz04hEQZGps1tg6DnCGI
24
- bFn5Tg/291GFpbED7ipFyHHoGERU1LLUPBJssi0jzwupfG/HGMiPzK/6ksgXsD5q
25
- O1vtMWol48M+QVy1MCVG2nP/uQASXw5HUBLABJo5KeTDjxlLVHEINQKBgAe54c64
26
- 9hFAPEhoS1+OWFm47BDXeEg9ulitepp+cFQIGrzttVv65tjkA/xgwPOkL19E2vPw
27
- 9KENDqi7biDVhCC3EBsIcWvtGN4+ahviM9pQXNZWaxjMPtvuSxN5a6kyDir0+Q8+
28
- ZhieQJ58Bs78vrT8EipdVNw8mn9GboMO6VkhAoGBAJ+NUvcO3nIVJOCEG3qnweHA
29
- zqa4JyxFonljwsUFKCIHoiKYlp0KW4wTJJIkTKvLYcRY6kMzP/H1Ja9GqdVnf8ou
30
- tJOe793M+HkYUMTxscYGoCXXtsWKN2ZOv8aVBA7RvpJS8gE6ApScUrjeM76h20CS
31
- xxqrrSc37NSjuiaTyOTG
32
- -----END PRIVATE KEY-----
33
- Bag Attributes
34
- friendlyName: client2
35
- localKeyID: 54 69 6D 65 20 31 36 36 35 31 35 35 35 36 34 38 38 32
36
- subject=C = , ST = , L = , O = , OU = , CN = client2
37
-
38
- issuer=CN = caroot
39
-
3
+ localKeyID: 54 69 6D 65 20 31 37 33 33 33 39 37 39 33 36 31 30 32
4
+ subject=C=, ST=, L=, O=, OU=, CN=client2
5
+ issuer=CN=caroot
40
6
  -----BEGIN CERTIFICATE-----
41
- MIIDCzCCAfOgAwIBAgIUIRg5w7eGA6xivHxzAmzh2PLUJq8wDQYJKoZIhvcNAQEL
42
- BQAwETEPMA0GA1UEAwwGY2Fyb290MCAXDTIyMTAwNzE1MTI0NFoYDzIwNTAwMjIx
43
- MTUxMjQ0WjBJMQkwBwYDVQQGEwAxCTAHBgNVBAgTADEJMAcGA1UEBxMAMQkwBwYD
44
- VQQKEwAxCTAHBgNVBAsTADEQMA4GA1UEAxMHY2xpZW50MjCCASIwDQYJKoZIhvcN
45
- AQEBBQADggEPADCCAQoCggEBAMysj5ArtDov1NRxWMRuXiwy7cqFeCzvUk2BCXyO
46
- gU9WNvc9kXpgd6BmjQUA5TUXqXKwPc02cjbUcjMtsJ7oElGiA0Uq1wW9ZLq5CiTU
47
- el6sM78NVCQf0BEBy+XET8jp09tvVgKLsQweuMwOV741dZXecoJ7sFwyQROSSLkG
48
- Pl80Dmhr+mZLSBJL8decHyvHIW/iYH9H6gYLXA5Y6+CfqKnlsp2MwQSfKpiwMIfz
49
- DfFiQqVnoCDnDXLGevoPjUnrgajZHrYy4utJxWv7gIz5cmXdjTz56aULPmbnC6Ho
50
- DfVunswVj5/caz0AjmqI3e3KNn/8TOgit9vry1C135S9Ph8CAwEAAaMhMB8wHQYD
51
- VR0RBBYwFIIHY2xpZW50MoIJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQBd
52
- d5Sl51/aLcCnc5vo2h2fyNQIVbZGbgEyWRbYdHv5a4X7JxUalipvRhXTpYLQ+0R5
53
- Fzgl5Mwo6dUpJjtzwXZUOAt59WhqVV5+TMe8eDHBl+lKM/YUgZ+kOlGMExEaygrh
54
- cG+/rVZLAgcC+HnHNaIo2guyn6RqFtBMzkRmjhH96AcygbsN5OFHY0NOzGV9WTDJ
55
- +A9dlJIy2bEU/yYpXerdXp9lM8fKaPc0JDYwwESMS7ND70dcpGmrRa9pSTSDPUaK
56
- KSzzOyK+8E5mzcqEbUCrlpz0sklNYDNMIn48Qjkz52Kv8XHvcYS1gv0XvQZtIH3M
57
- x6X3/J+ivx6L72BOm+ar
7
+ MIIDyzCCArOgAwIBAgIUGkcIgpCjxPTE/eGyCgJ6vrd7kCswDQYJKoZIhvcNAQEL
8
+ BQAwETEPMA0GA1UEAwwGY2Fyb290MCAXDTI0MTIwNTExMjUzNVoYDzIwNTIwNDIx
9
+ MTEyNTM1WjBJMQkwBwYDVQQGEwAxCTAHBgNVBAgTADEJMAcGA1UEBxMAMQkwBwYD
10
+ VQQKEwAxCTAHBgNVBAsTADEQMA4GA1UEAxMHY2xpZW50MjCCAaIwDQYJKoZIhvcN
11
+ AQEBBQADggGPADCCAYoCggGBALhtqMJYhf6IwmShmQcOJ8sSvxl7F8RZdtI/PvoP
12
+ +TXtAZO6q65fo7hPq7fjK/2YQIwd8VHrgDsMN4vNCzG6w4GnxnOhTuTevoE6Zwlf
13
+ 1duaWIilUU7vYNth5Qz5Z2MB4hPEqxGBTMO8N7LMMVi4gRvleL3Q71+kGoK0+4KU
14
+ aj1MfOssGsDAiIyKxAZutR7bB0nTfLD7AmbOwSo7IlPCTqRN8/aAa3Ibship1ggB
15
+ W5lLKweROXpEvcVXFDzM4nYq/aHbNDtm9ZvJ4r0WYHwxfdohe5J+kMqcukQCTKxM
16
+ K3vdTPj132Xz7VjuoblajZrS3mAzFGdNi/bHuvDQe29FDwFxztg4tc+/eWEfgTGT
17
+ /hbr78sX7vzdKn8GyESXxhdH7xK/6Q32Bgfc6W0Oy7oFjnUd90i8eX65MT74/Cu5
18
+ BGK/xZIJASSqwWiWJEQSOaUxKqivAVkBhSJb2vK3dlmEzmRZmsgoeXsAyEWdKTCP
19
+ DGNMHieSnyqBfaUvoe1+EjJYXQIDAQABo2EwXzAdBgNVHREEFjAUggdjbGllbnQy
20
+ gglsb2NhbGhvc3QwHQYDVR0OBBYEFOiCs1wbf8Cl3rF1CpVD/Et6GJESMB8GA1Ud
21
+ IwQYMBaAFBquBrd/0jBjmanrXh3JYIydbvgWMA0GCSqGSIb3DQEBCwUAA4IBAQCj
22
+ +mE/fvOrjf2ij82aA9pMx5+s6SI/ntFY+uVFKIvNITqNINuFiTTlHmudXoGFES5X
23
+ dP9bawSctd6icq/Ek1qlyDdcbRC6CLrPDds83OtJc3s0XAa3cuhLZ7g3LveuAHzj
24
+ 55JW26NTWd8NAMsuNx0CY/bD/HtoX44R08NhvYEaumOeNdMeC0wL9PL4ia8xCqxt
25
+ baN2+t0nEpK4f9IP+dZlw9t4FJiEgg7iqW9wFDgqlcqsnmweSxfqat2a3uTv+hTG
26
+ mLWultOgt9Fc6xdiP2dyL/sMQiNIVA4tqaxY75arm/gjohx6s7hyr8FrcXig3ooM
27
+ 3PtZVuHGCcd3Wy5wdsLJ
58
28
  -----END CERTIFICATE-----
59
29
  Bag Attributes
60
30
  friendlyName: CN=caroot
61
- subject=CN = caroot
62
-
63
- issuer=CN = caroot
64
-
65
- -----BEGIN CERTIFICATE-----
66
- MIIDAzCCAeugAwIBAgIUPj85Dz0tuzZERfolrR54arwFPSIwDQYJKoZIhvcNAQEL
67
- BQAwETEPMA0GA1UEAwwGY2Fyb290MB4XDTIyMTAwNzE1MTI0MVoXDTMyMTAwNDE1
68
- MTI0MVowETEPMA0GA1UEAwwGY2Fyb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
69
- MIIBCgKCAQEAxfb08Gd64ilCYePn821WJsnCC2/nEYxOHlBzT9tkx6edzpdsvIvj
70
- FO6Weeyb2f1vv6eJsmBaZUdV2CfOHNIhBvw5IemzUaSiCr8688jHUS6uHCxBYCXk
71
- daFDXKO+JhaPN/ys6wOC8SHYRRynIhp6QVNSBzoO/1WT/J3i58R8TErDi5txr+JA
72
- xJd3mnAW4lDiqRLSVQFq3W4jvba3Dy2zK1l4NcShzlYgfsAd9cCi6b+T2mcz9Vl4
73
- B1qvsOfOMi8AmVTbS77oaxLczBpLyFIrzI5OPNmMw3A7uObgws9QTyYxUfYqc/0m
74
- bO7bHPX0Iz+WPqrzTHZ+3k5QE/bfGIRnsQIDAQABo1MwUTAdBgNVHQ4EFgQUCgQH
75
- 18kzzHsk3KbdDB4g+94NL70wHwYDVR0jBBgwFoAUCgQH18kzzHsk3KbdDB4g+94N
76
- L70wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAhKlj3zPuYaMF
77
- UFROvAWeOXIdDIExbHd5qukYj5UStLhoVKe/1ZKMvdAICejMs51QSJ05d22KqeHn
78
- KaTrq3al61rvufkNhrQo2B+qwM5dEV8qGVZGI/oSaWkk5W33FrKHqSUvwdi/saOc
79
- MfQDUuyS7IznLMlR8g0ZcmIPO3cyHPXQhgk80SNJODqpkfgCgHAa1kDz9PmT7VMK
80
- 0f/6U3XEkdRdsvWyWDXMSBFx1m/pu9n7fnL8+6QLczyhoX0NhPnOICC3oSYVVuN7
81
- MOtCLIhwxsv5BlDFnOeBFxq+VKqZDH+z6587Wl0KQyxsJmuJKZ1kYR3XO7j5jw1e
82
- QHIFE8+PTQ==
83
- -----END CERTIFICATE-----
84
- Bag Attributes
85
- friendlyName: caroot
86
- 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
87
- subject=CN = caroot
88
-
89
- issuer=CN = caroot
90
-
31
+ subject=CN=caroot
32
+ issuer=CN=caroot
91
33
  -----BEGIN CERTIFICATE-----
92
- MIIDAzCCAeugAwIBAgIUPj85Dz0tuzZERfolrR54arwFPSIwDQYJKoZIhvcNAQEL
93
- BQAwETEPMA0GA1UEAwwGY2Fyb290MB4XDTIyMTAwNzE1MTI0MVoXDTMyMTAwNDE1
94
- MTI0MVowETEPMA0GA1UEAwwGY2Fyb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
95
- MIIBCgKCAQEAxfb08Gd64ilCYePn821WJsnCC2/nEYxOHlBzT9tkx6edzpdsvIvj
96
- FO6Weeyb2f1vv6eJsmBaZUdV2CfOHNIhBvw5IemzUaSiCr8688jHUS6uHCxBYCXk
97
- daFDXKO+JhaPN/ys6wOC8SHYRRynIhp6QVNSBzoO/1WT/J3i58R8TErDi5txr+JA
98
- xJd3mnAW4lDiqRLSVQFq3W4jvba3Dy2zK1l4NcShzlYgfsAd9cCi6b+T2mcz9Vl4
99
- B1qvsOfOMi8AmVTbS77oaxLczBpLyFIrzI5OPNmMw3A7uObgws9QTyYxUfYqc/0m
100
- bO7bHPX0Iz+WPqrzTHZ+3k5QE/bfGIRnsQIDAQABo1MwUTAdBgNVHQ4EFgQUCgQH
101
- 18kzzHsk3KbdDB4g+94NL70wHwYDVR0jBBgwFoAUCgQH18kzzHsk3KbdDB4g+94N
102
- L70wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAhKlj3zPuYaMF
103
- UFROvAWeOXIdDIExbHd5qukYj5UStLhoVKe/1ZKMvdAICejMs51QSJ05d22KqeHn
104
- KaTrq3al61rvufkNhrQo2B+qwM5dEV8qGVZGI/oSaWkk5W33FrKHqSUvwdi/saOc
105
- MfQDUuyS7IznLMlR8g0ZcmIPO3cyHPXQhgk80SNJODqpkfgCgHAa1kDz9PmT7VMK
106
- 0f/6U3XEkdRdsvWyWDXMSBFx1m/pu9n7fnL8+6QLczyhoX0NhPnOICC3oSYVVuN7
107
- MOtCLIhwxsv5BlDFnOeBFxq+VKqZDH+z6587Wl0KQyxsJmuJKZ1kYR3XO7j5jw1e
108
- QHIFE8+PTQ==
34
+ MIIC0TCCAbmgAwIBAgIUMkCrt6VwuFKkq2u3jR+nM6uV1BMwDQYJKoZIhvcNAQEL
35
+ BQAwETEPMA0GA1UEAwwGY2Fyb290MB4XDTI0MTIwNTExMjUxN1oXDTI1MDEwNDEx
36
+ MjUxN1owETEPMA0GA1UEAwwGY2Fyb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
37
+ MIIBCgKCAQEArL32r0FPpZArzoRi62K27uLp407qTT9Qux2FwdFHxNJCy2nhSaHg
38
+ SFsvKaSio3J2xF8y0R6NG9U0iA630ZUXXJBcGWy4BdjIiFPJPaC7nKzdVEIpOezT
39
+ u+/VmsTamNRngNvLQi1o2OPne4V0TlSito9KOhZMEd8eJT+WQtgw5x+LpEFAdUD9
40
+ urHVYYGq5+locfiN/P9BWvTjYoYJ8YFcpzxuNQA82r/j8h0o8L6pwtWa1xchcR2b
41
+ mq2ME8gm1bPX7ZndpKW5zdBc7hwThuTwB0RpuucdsYmfFoSTCBZ3EBlI3Ta2XwGw
42
+ q2E3XJhtW5ceovxHihAIvHRuXCtWT8GIdwIDAQABoyEwHzAdBgNVHQ4EFgQUGq4G
43
+ t3/SMGOZqeteHclgjJ1u+BYwDQYJKoZIhvcNAQELBQADggEBACtArlYP9sLQDxzF
44
+ 7MbYKPt8dsRYsbO2TlIaB7OEMUVbAKyetizGFcW8I7ezqPYn4uEQqdZmo1mMu6ou
45
+ D1nK0sUsWSq5n1rgZJJoi+o6h71pfBlLYeyKZ5bhnKLkt5s50sInTGdqkUfJdM05
46
+ 3HTV6TdVN71Jd8U/Pp2vu0+UteuLBFuDbYaHiyZunUL/tH6FR2CzkR/NxiytPwE2
47
+ KxTp3KdaMXq6+Hf9OBzCbhrv+o/S8OCWLHCt+caWhsOk8/xvn+78mn+2bFwH+uG8
48
+ KB4ynut6hO/ms0hIcTJZD1uqtdollsvzoN2OEj3WI+LWYTkmAQF7H3A9juT3l8GT
49
+ 0+w5Qoc=
109
50
  -----END CERTIFICATE-----
@@ -0,0 +1,46 @@
1
+ Bag Attributes
2
+ friendlyName: client2
3
+ localKeyID: 54 69 6D 65 20 31 37 33 33 33 39 37 39 33 32 32 30 34
4
+ Key Attributes: <No Attributes>
5
+ -----BEGIN ENCRYPTED PRIVATE KEY-----
6
+ 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
46
+ -----END ENCRYPTED PRIVATE KEY-----
@@ -1,34 +1,46 @@
1
1
  Bag Attributes
2
2
  friendlyName: client2
3
- localKeyID: 54 69 6D 65 20 31 36 36 35 31 35 35 35 36 34 38 38 32
3
+ localKeyID: 54 69 6D 65 20 31 37 33 33 33 39 37 39 33 36 31 30 32
4
4
  Key Attributes: <No Attributes>
5
5
  -----BEGIN ENCRYPTED PRIVATE KEY-----
6
- MIIFFDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQILalIN2MbG7QCAggA
7
- MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECD+gqk7gSkEFBIIEwETSFzC1yYTM
8
- /O6lA8BMkl5Wzt4e7Jw7WnfWSmOFTtpXZqOgxvN9dNPsMIpxvU7nF3Iwhqw0WXMF
9
- lpKqCy2FLM+XWqaQYV+2++s23lH0Eqfofc0IZoYk7FB92MAO1dUI7iDJeT0kwrmU
10
- mgAKAqa6e4REZgDEUXYVAOiAHqszs0JjXlsxlPSws2EZQyU8kEALggy+60Jozviq
11
- a9fUZ9JnbtCPkuSOipC8N+erNIEkruzbXRbookTQF+qAyTyXMciL0fTqdAJB/xfO
12
- h66TQvr1XZorqqVPYI+yXwRBF7oVfJyk0kVfhcpo6SoedNJ3onUlyktcF2RPj1xh
13
- 612L4ytNp/TN8jvSs5EKHTuwS2+dnYp2jTS4rcbSRe53RylhFudAn9/aZad0/C72
14
- JXeiax3i0071sWbvKX3YsW/2QCaeMALhiqbzx+8PcgVV9BVfjO8qxJSNjaOwmVRy
15
- I/22pufTDkoNL/aQSiw1NAL22IPdD0uvLCHj27nBct4KancvgSdTxMK9lfwJZet1
16
- D0S9ChUa2tCY0pDH7F9XUfcS7VAij+VWtlGIyEw7rPOWx6fGT15fj/QnepuJ5xON
17
- qiAH7IhJesWWhG7xp7c3QsdeGNowkMtoLBlz5fEKDRaauPlbLI5IoXy+ZyOO1tIo
18
- kH5wHDE1bn5cWn7qRy5X5HtPga1OjF11R+XquJ88+6gqmxPlsrK45/FiGdP4iLN/
19
- dp10cnFgAVA2kEaTXCH1LctGlR+3XQgfrwWDfvk7uMtvybqFcEEBv8vBih1UsF6v
20
- RFfoUYq8Zle2x9kX/cfad52FxtDWnhZAgNtT53tWRUb/oAt7fXQxJMlRXKjSV05q
21
- S/uwevnj49eVFdyiroPofipB8LAK4I+gzZ8AYJob5GoRTlPonC1pj/n3vKRsDMOA
22
- Lwy3gXoyQ+/MBUPcDG/ewdusrJncnkAlFNt0w97CmOJU0czuJJw5rRozfvZF1Hs9
23
- 2BVcwVPmZH9Nr3+6Yb+GTCRvsM7DBuLZIEN4WzjoLYAcrjZ2XYLsC6XmnDzIp1HF
24
- nZwrXUROp4MhKuy+SIdFqZLoU/+AIB28WI3euIDDuERSZLff11hphRG5S9wZ8EJH
25
- Jyl2WgP4r8wQtHs71iT06KDFuBcNqGYPwCjnvE86WFXE3wOJ91+l9u8MYvOSVOHq
26
- 4iUIpRFD4hlCWOIc1V9QYKf2s8Vkeoop/pUutK5NpLtMFgJpFPNYxyfBL13fo9lM
27
- 0iVuoG3W+iDjqZyUPoDxG4rI6Q9WvkswLxVwpMgzDUbUl2aKHcm4Z215dBMm40zh
28
- ft+QzZEnMVzln2eTCcH91IXcsyPPACmKwraAik5ULEn4m++KtdwDZ6R1zzgRJrn9
29
- FI6L7C0nfKKemBdzGMCzQuciuPLIjfzXHdKr5bb0C1WS88IB0lYIs+pzpvms2P0F
30
- AQ2nDgFKA9xlzX2f1O/YQNKA1ctc8RH5tpZUUVfheIqd0U4udp9Rqecd+/r23ENU
31
- 7kjeuxXfUbH83P0hrsQQFkkOeRWWz8+UYvqIEwWaSObdZCvTdIjRpNmmamWsAmsJ
32
- D5Q2AMMMmNwIi5fUKYJgwTfsgY0XIekk6wmugKs3gCj1RKX930b9fniiol/Gv2VS
33
- fJRrqds7F0s=
6
+ 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
34
46
  -----END ENCRYPTED PRIVATE KEY-----