Commit Graph

136 Commits (1aaf5f2348d437a1f18a8a7349fb0027ae6ab242)

Author SHA1 Message Date
Roger A. Light 1924afe49e Add explicit support for TLS v1.3 and drop TLS v1.0. 7 years ago
Roger A. Light deb2fdfc98 Use lib provided random id. Change lib generated id to alphanumeric only. 7 years ago
Roger A. Light 5aabc171b0 Merge branch 'mqtt5' into develop 7 years ago
Roger A. Light e862a047a8 Rework TLS engine support. 7 years ago
Nicolás Pernas Maradei 20894fcbce Add engine private key password support
Some OpenSSL engines (selectable via tls_engine option) may require a
password to make use of private keys created with them in the first place.

The TPM engine for example, will require a password to access the underlying
TPM's Storage Root Key (SRK), which is the root key of a hierarchy of keys
associated with a TPM; it is generated within a TPM and is a non-migratable
key. Each owned TPM contains a SRK, generated by the TPM at the request
of the Owner. [1]

By default, the engine will prompt the user to introduce the SRK password
before any private keys created with the engine can be used. This could
be inconvenient when running on an unattended system.

Here's where the new tls_engine_kpass_sha option comes in handy. The user
can specify a SHA1 hash of its engine private key password via command
line or config file and it will be passed on to the engine directly.

This commit adds support for both clients (libmosquitto) and broker.

[1] https://goo.gl/qQoXBY

Signed-off-by: Nicolás Pernas Maradei <nicopernas@gmail.com>
7 years ago
Nicolás Pernas Maradei f88cc06435 Add TLS engine and keyform support to libmosquitto
- Clients can now offload crypto tasks to an external crypto device through
  the OpenSSL ENGINE API.
- The keyfiles can now be treated as PEM or ENGINE keys.
- Two new functions were added to libmosquitto to set up the previously
  mentioned features.
- Both mosquitto_sub and mosquitto_pub include support to turn on the mentioned
  features through command line options.

Signed-off-by: Nicolás Pernas Maradei <nicopernas@gmail.com>
7 years ago
Roger A. Light 084062c85e Merge branch 'fixes' into mqtt5 7 years ago
Roger A. Light 05458eb35d Fix some unused variable warnings. 7 years ago
Roger A. Light a4f68869bf Fix cmake client build with TLS. 7 years ago
Roger A. Light 70c4097b6f Fix comparison of boolean values in CMake build.
Closes #1101. Thanks to Mojca Miklavec and Andrew L. Moore.
7 years ago
Roger A. Light 4a2e569171 -V now accepts `5, `311`, `31`, as well as `mqttv5` etc. 7 years ago
Roger A. Light 326292681a Add maximum-qos support to broker and client.
This comes in the form of:

* Per listener maximum_qos option, which can be in the range 0-2.
* Changes to mosquitto_publish*() to return MOSQ_ERR_QOS_NOT_SUPPORTED
  if attempting to publish with a higher QoS than supported.
* Bridges will downgrade messages to match the maximum QoS.

More tests on the broker side (specifically bridges) are required. This
needs bridge support for MQTT 5 first.
7 years ago
Roger Light 930a314caf Add reason_code to on_publish_v5 callback. 7 years ago
Roger Light 1f9383d59a Helper test scripts for client properties. 7 years ago
Roger Light 0546e7bebc Add mosquitto_int_option and mosquitto_void_option
This deprecates mosquitto_opts_set().
7 years ago
Roger A. Light 2f54b16544 Fix mosquitto_pub not always sending everything with -l and QoS>0. 7 years ago
Roger A. Light 7c3666d593 Subscription identifier support. 7 years ago
Roger A. Light fcf4cd0b27 Merge branch 'master' into mqtt5 7 years ago
Roger A. Light db7901884f Retain-as-published support. 7 years ago
Roger A. Light a00dd29af8 Fix building where TLS-PSK is not available.
Closes #68.
7 years ago
Roger A. Light 5073d83bf8 Don't generate client ids in v5 mode. 7 years ago
Roger A. Light 34293d07c1 Always print leading zeros in mosquitto_sub when output format is hex.
Closes #1066.

Thanks to skiizo.

Bug: https://github.com/eclipse/mosquitto/issues/1066
7 years ago
Roger A. Light 0123ff1efe Rename *_with_properties() -> *_v5(). 7 years ago
Roger Light a9d19d0911 Use MQTT 5 reason strings where appropriate in clients. 7 years ago
Roger Light 36e8659762 Only keep reading from stdin if we are connected. 7 years ago
Roger Light 47129e395e Use v5 callback in pub client. 7 years ago
Roger Light 3cb8a52ef3 Add reason code to mosquitto_disconnect_with_properties() 7 years ago
Roger A. Light 85d9cfa2fa Fix pub client stdin mode. 7 years ago
Roger A. Light dd158ffeb3 Split common publish code into separate file. 7 years ago
Roger A. Light 098a1c8ecf Fix subscribe_multiple datatypes. 7 years ago
Roger A. Light beb96c6b8b Merge branch 'master' into develop 7 years ago
Roger A. Light ba67e1ffe5 Don't use gnu-specific strerror_r. 7 years ago
Bartosz Taczała e86b27a2da Adding support for QNX7.0.0
Change-Id: Id01e2880aa5cadc0e93a46b95fe675e1938051fa
Signed-off-by: Bartosz Taczała <bartosz.taczala@mobica.com>
7 years ago
Roger A. Light f9e0fa246a Validate properties coming into client library. 7 years ago
Roger A. Light 4c0c632dfa Client memory "leak" fixes. 7 years ago
Roger A. Light 8aa936936e Library and client support for topic-alias. 7 years ago
Roger A. Light 55b46037da Change -y to -D in clients. 7 years ago
Roger A. Light de3a9af1f7 Client+library support for unsubscribe properties. 7 years ago
Roger A. Light 49a8642986 Disallow properties that are invalid for a command. 7 years ago
Roger A. Light 741a8a9cc3 Client disconnect property support, plus disconnect packet fix. 7 years ago
Roger A. Light 383608613a Client+lib will property support. 7 years ago
Roger A. Light 12cba75c73 Client support for adding properties. 7 years ago
majekw 7f1419e4de Fix mosquitto_pub -l if compiled using cmake.
Since dde005ef92 mosquito_pub is throwing error
that 'threading support has not been compiled' when compiled using cmake.
It looks like WITH_THREADING flag is not set at top level Makefile and used
only in lib/ directory, so library is correctly compiled with threading.
But for client this flag is undefined, so it gives error on '-l' option.

This commit moves part related to WITH_THREADING flag out of lib/CMakeLists.txt
to top levele CMakeLists.txt, so it could be accessible to all subdirectories.

Signed-off-by: Marek Wodzinski <majek@w7i.pl>
7 years ago
Roger A. Light 35dea07dcd Merge branch 'master' 7 years ago
Roger A. Light e5eb03b2e6 Allow building without shared library. 7 years ago
Roger A. Light abb3fee1f8 Coverage reporting for whole broker. 7 years ago
Roger A. Light 366744bad7 Fix subscribe_multiple datatypes. 7 years ago
Roger Light 6c9e8d51c2 Merge branch 'develop' into mqtt5 7 years ago
Roger A. Light 1867f30785 Merge branch 'master'
Conflicts:
	ChangeLog.txt
7 years ago
Roger A. Light 0e76bed50e Add -E option to mosquitto_sub.
This causes the client to exit immediately after its subscriptions are
acknowledged by the broker, and can be used to create a durable client
session without requiring messages to be delivered.

Closes #952.
7 years ago