Commit Graph

55 Commits

Author SHA1 Message Date
Roger A. Light
1924afe49e Add explicit support for TLS v1.3 and drop TLS v1.0. 2019-02-27 22:50:01 +00:00
Roger A. Light
5aabc171b0 Merge branch 'mqtt5' into develop 2019-02-26 18:51:31 +00:00
Roger A. Light
e862a047a8 Rework TLS engine support. 2019-02-26 17:11:29 +00:00
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>
2019-02-26 15:50:37 +00:00
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>
2019-02-26 15:48:00 +00:00
Roger Light
930a314caf Add reason_code to on_publish_v5 callback. 2019-01-09 17:06:43 +00:00
Roger A. Light
fcf4cd0b27 Merge branch 'master' into mqtt5 2018-12-19 14:11:11 +00:00
Roger A. Light
db7901884f Retain-as-published support. 2018-12-14 13:36:02 +00:00
Roger A. Light
a00dd29af8 Fix building where TLS-PSK is not available.
Closes #68.
2018-12-11 10:55:31 +00:00
Roger A. Light
5073d83bf8 Don't generate client ids in v5 mode. 2018-12-05 21:26:22 +00:00
Roger A. Light
0123ff1efe Rename *_with_properties() -> *_v5(). 2018-11-22 18:55:04 +00:00
Roger Light
a9d19d0911 Use MQTT 5 reason strings where appropriate in clients. 2018-11-22 18:22:31 +00:00
Roger Light
3cb8a52ef3 Add reason code to mosquitto_disconnect_with_properties() 2018-11-22 16:56:17 +00:00
Roger A. Light
098a1c8ecf Fix subscribe_multiple datatypes. 2018-11-13 14:05:03 +00:00
Roger A. Light
4c0c632dfa Client memory "leak" fixes. 2018-11-01 16:02:20 +00:00
Roger A. Light
55b46037da Change -y to -D in clients. 2018-11-01 14:22:00 +00:00
Roger A. Light
de3a9af1f7 Client+library support for unsubscribe properties. 2018-11-01 14:12:52 +00:00
Roger A. Light
741a8a9cc3 Client disconnect property support, plus disconnect packet fix. 2018-11-01 11:57:47 +00:00
Roger A. Light
12cba75c73 Client support for adding properties. 2018-10-31 12:38:39 +00:00
Roger A. Light
366744bad7 Fix subscribe_multiple datatypes. 2018-10-04 09:46:51 +01:00
Roger Light
6c9e8d51c2 Merge branch 'develop' into mqtt5 2018-10-02 11:28:03 +01:00
Roger A. Light
1867f30785 Merge branch 'master'
Conflicts:
	ChangeLog.txt
2018-10-02 08:31:54 +01:00
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.
2018-09-27 22:21:42 +01:00
Roger A. Light
33a523eea9 Add identifiers for v5.
Clients know about v5, just need library support...
2018-09-19 10:59:41 +01:00
Roger A. Light
88765a5e80 Consistent use of config.h across the project. 2018-08-16 11:14:51 +01:00
Roger A. Light
9852f94ee0 Merge branch 'sub_client_timeout_upstream' of git://github.com/I2SE/mosquitto into I2SE-sub_client_timeout_upstream 2018-04-12 00:20:02 +01:00
Roger A. Light
f4d238be18 Bump copyright years. 2018-04-11 15:24:29 +01:00
Roger A. Light
86ced4d98f Add mosquitto_connect_with_flags_callback_set().
This allows a second connect callback to be used that exposes the
MQTT connect flags parameter.

Closes #738, #128.
2018-04-11 14:06:16 +01:00
Roger A. Light
17029c1e11 Minor usage string updates. 2018-03-15 11:25:18 +00:00
Roger A. Light
5cdfe3239c Separate sub client output code into its own file. 2018-03-15 11:21:42 +00:00
Roger A. Light
611ad222bb Don't keep trying to connect in sub client if CONNACK negative. 2018-03-15 11:13:17 +00:00
Michael Heimpold
338322fa9c sub_client: allow to specify a timeout (refs #275)
This add a new command line parameter to give a timeout for message
processing. It is implemented using alarm(2) and thus available at
the moment only for POSIX platforms (also because I have no WIN32
build environment at hand).

Signed-off-by: Michael Heimpold <michael.heimpold@i2se.com>
2018-01-12 14:59:53 +01:00
Roger A. Light
712cbfe599 Default to mqtt v3.1.1 for clients. 2017-08-09 23:59:08 +01:00
Roger A. Light
840453c14f Remove -x from mosquitto_sub - this is provided by -F now. 2016-08-10 12:24:43 +01:00
Roger A. Light
8140ce1f24 Add -F to mosquitto_sub to allow users to choose the output format. 2016-08-10 12:24:43 +01:00
Roger A. Light
8378fe44cf Update copyrights. 2016-07-08 09:42:24 +01:00
Roger A. Light
37dceb38f9 Fix some defects discovered by coverity. 2016-03-18 11:54:36 +00:00
Roger A. Light
bd61d18e92 Small tidy up. 2016-03-12 21:43:29 +00:00
Matteo Croce
59c80d9197 Add MQTT URL scheme support
Add option -L to specify user, password, hostname, port and topic at once.
The URL must provided with the -L or --url in the form:
mqtt(s)://[username[:password]@]host[:port]/topic

Change-Id: Ia626a28981a38807a254ae32c6ffb29b122b8a28
Signed-off-by: Matteo Croce <matteo@openwrt.org>
2016-03-12 21:43:29 +00:00
Roger A. Light
1961404ec9 Add --retained-only to mosquitto_sub. 2016-02-02 20:57:37 +00:00
Roger A. Light
3aa698d023 Add -U to mosquitto_sub for unsubscribing from topics. 2015-12-29 20:15:00 +00:00
Roger A. Light
9a2eb2038f Drop Windows XP support, misc fixes on Windows. 2015-09-22 10:03:57 +01:00
Roger A. Light
2e05e40350 [464458] mosquitto_sub: Add option to print the payload in hex.
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=464458
2015-04-17 22:01:50 +01:00
Roger A. Light
a9cd86f206 Fix usage text. 2015-02-14 13:10:07 +00:00
Roger A. Light
15e0236d43 [453850] Add -C option to mosquitto_sub.
Allows the client to quit after receiving count messages.

Replaces the (unreleased) -1 option.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=453850
2015-01-30 22:23:51 +00:00
Roger A. Light
8a35c3cd0d Add client support for MQTT v3.1.1. 2015-01-27 00:32:20 +00:00
Roger A. Light
b6a0b01e1e [457162] Fix mosquitto_sub not honouring --qos.
Thanks to Christoph Krey.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=457162
2015-01-09 21:02:16 +00:00
Roger A. Light
166bc2c481 Cleanup client memory on error. 2014-11-16 23:41:06 +00:00
Roger A. Light
42420cae46 Add experimental SOCKS5 support for the clients. 2014-09-30 00:56:57 +01:00
Roger A. Light
d9d1f2f7b8 Don't display usage information on every error. 2014-09-10 16:10:53 +01:00