Commit Graph

28 Commits

Author SHA1 Message Date
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 A. Light
88765a5e80 Consistent use of config.h across the project. 2018-08-16 11:14:51 +01:00
Roger A. Light
dde005ef92 Return error in mosquitto_pub -l if compiled without threading. 2018-08-16 11:06:58 +01:00
Roger A. Light
f4d238be18 Bump copyright years. 2018-04-11 15:24:29 +01:00
Roger A. Light
40e6a75709 Use c99 as compiling standard.
Closes: #765.
2018-04-06 00:33:22 +01:00
Roger A. Light
8a22b918c0 Fix Coverity Scan defects. 2018-03-26 22:47:46 +01:00
Roger A. Light
17029c1e11 Minor usage string updates. 2018-03-15 11:25:18 +00:00
Roger A. Light
81cb7ab547 Merge branch 'fixes' into develop 2018-02-13 14:16:47 +00:00
Roger A. Light
15486f48e7 [636] Correctly handle empty files with "mosquitto_pub -l".
Thanks to Aleksandr Makarov.

Bug: https://github.com/eclipse/mosquitto/issues/676
2018-01-22 17:52:56 +00:00
Roger A. Light
712cbfe599 Default to mqtt v3.1.1 for clients. 2017-08-09 23:59:08 +01:00
Roger A. Light
ef7a7850ac Add -c to mosquitto_pub. 2017-07-17 20:43:06 +01:00
Roger A. Light
8378fe44cf Update copyrights. 2016-07-08 09:42:24 +01: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
c5a376489e [483979] Fix "mosquitto_pub -l" stripping the final character on a line.
Thanks to Allan Kobelansky.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=483979
2015-12-18 22:29:32 +00:00
Roger A. Light
89763a51d9 [478917] Don't truncate lines with "mosquitto_pub -l"
Thanks to Jan-Piet Mens.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=478917
2015-10-11 22:55:54 +01:00
Eduardo Sanchez
dae1f95371
Adding a new temporary variable for realloc memory in order to keep the reference to the allocated memory before the function returns.
In case that realloc fails (i.e. OOM), before exiting with "return(1)", the application is still able to free the corresponding allocated memory.

Signed-off-by: Eduardo Sanchez <ledusanchez@gmail.com>
2015-06-01 00:04:31 -03:00
Roger A. Light
8a35c3cd0d Add client support for MQTT v3.1.1. 2015-01-27 00:32:20 +00:00
Roger A. Light
c12d3ebc0b [454852] Support setting keepalive on pub client.
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=454852
2014-12-16 22:53:52 +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
Roger A. Light
e6c5f5af7e Add missing usage text. 2014-06-12 22:23:55 +01:00
Roger A. Light
fd7fbba3a5 Use shared config code for debug arg. 2014-05-27 21:48:32 +01:00
Roger A. Light
cb0e355d9e Only provide srv capabilities ifdef WITH_SRV. 2014-05-19 14:23:38 +01:00
Roger A. Light
94ec27911b Shared config parsing for client utils. 2014-05-24 23:12:17 +01:00
Roger Light
0364bd1be7 Initial contribution. 2014-05-07 23:27:00 +01:00