I just put in a pull request for the feature that reads from the file system. PEM files can be stored in the default format and the certificate/key data will be parsed, removing beginning, ending delimiters and newline characters.
Here's example code using the file paths instead of cert strings:
var eth;
var connection;
var options = url.parse("mqtt://A1123456789AA.iot.us-east-1.amazonaws.com:8883");
options.ca = 'certs/rootCA.pem';
options.cert = 'certs/cert.pem';
options.key = 'certs/key.pem';
var mqtt = require("MQTT").create();
mqtt.on("connected", function() {
console.log("connected to AWS IoT Service...");
mqtt.subscribe("test/topic");
});
mqtt.on("publish", function (pub) {
console.log("\nNew message received: ");
console.log("topic: "+pub.topic);
console.log("message: "+pub.message);
});
function onInit() {
SPI2.setup({mosi:B15,miso:B14,sck:B13,baud:1000000});
E.connectSDCard(SPI2,B1);
SPI3.setup({ mosi:B5, miso:B4, sck:B3 });
eth = require("WIZnet").connect(SPI3, A0);
eth.setIP();
require("tls").connect(options, function(res) {
connection = res;
console.log("tls connected");
setTimeout(function() {
mqtt.connect(res);
},2000);
});
}
The timeout is necessary to allow the certificate exchange and verification to complete before calling mqtt.connect. Maybe this can be event driven.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I just put in a pull request for the feature that reads from the file system. PEM files can be stored in the default format and the certificate/key data will be parsed, removing beginning, ending delimiters and newline characters.
Here's example code using the file paths instead of cert strings:
The timeout is necessary to allow the certificate exchange and verification to complete before calling mqtt.connect. Maybe this can be event driven.