meshtastic 0.0.179 → 0.0.181
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.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/documentation/README.md +3 -2
- data/documentation/admin-channel.md +64 -0
- data/documentation/admin-config.md +59 -0
- data/documentation/admin-firmware-nordic.md +86 -0
- data/documentation/admin-firmware-serial.md +180 -0
- data/documentation/admin-firmware.md +126 -0
- data/documentation/admin.md +88 -35
- data/documentation/atak.md +93 -10
- data/documentation/channel.md +1 -28
- data/documentation/config.md +1 -27
- data/documentation/mesh-interface.md +7 -0
- data/documentation/meshtastic.md +2 -2
- data/lib/meshtastic/admin/channel.rb +164 -0
- data/lib/meshtastic/admin/config.rb +213 -0
- data/lib/meshtastic/admin/firmware/ble.rb +207 -0
- data/lib/meshtastic/admin/firmware/nordic_dfu.rb +218 -0
- data/lib/meshtastic/admin/firmware/serial_bootloader.rb +233 -0
- data/lib/meshtastic/admin/firmware.rb +288 -0
- data/lib/meshtastic/admin.rb +688 -34
- data/lib/meshtastic/apponly.rb +19 -7
- data/lib/meshtastic/atak.rb +295 -17
- data/lib/meshtastic/bluetooth/bluez.rb +20 -1
- data/lib/meshtastic/bluetooth.rb +70 -59
- data/lib/meshtastic/cannedmessages.rb +13 -6
- data/lib/meshtastic/channel.rb +3 -25
- data/lib/meshtastic/clientonly.rb +19 -7
- data/lib/meshtastic/config.rb +3 -24
- data/lib/meshtastic/config_pb.rb +2 -1
- data/lib/meshtastic/connection_status.rb +12 -5
- data/lib/meshtastic/deviceonly.rb +19 -7
- data/lib/meshtastic/localonly.rb +19 -7
- data/lib/meshtastic/mesh_interface.rb +19 -0
- data/lib/meshtastic/module_config.rb +13 -7
- data/lib/meshtastic/mqtt.rb +72 -35
- data/lib/meshtastic/paxcount.rb +17 -6
- data/lib/meshtastic/portnums.rb +13 -6
- data/lib/meshtastic/position.rb +16 -6
- data/lib/meshtastic/remote_hardware.rb +27 -11
- data/lib/meshtastic/rtttl.rb +17 -8
- data/lib/meshtastic/serial.rb +81 -70
- data/lib/meshtastic/storeforward.rb +13 -6
- data/lib/meshtastic/storeforward_pb.rb +1 -1
- data/lib/meshtastic/stream_interface.rb +11 -0
- data/lib/meshtastic/tcp.rb +73 -22
- data/lib/meshtastic/telemetry.rb +15 -6
- data/lib/meshtastic/traceroute.rb +15 -6
- data/lib/meshtastic/util.rb +3 -1
- data/lib/meshtastic/version.rb +1 -1
- data/lib/meshtastic/xmodem.rb +12 -5
- data/lib/meshtastic.rb +22 -3
- data/spec/conventions_spec.rb +321 -0
- data/spec/lib/meshtastic/admin/channel_spec.rb +202 -0
- data/spec/lib/meshtastic/admin/config_spec.rb +114 -0
- data/spec/lib/meshtastic/admin/firmware/ble_spec.rb +170 -0
- data/spec/lib/meshtastic/admin/firmware/nordic_dfu_spec.rb +248 -0
- data/spec/lib/meshtastic/admin/firmware/serial_bootloader_spec.rb +263 -0
- data/spec/lib/meshtastic/admin/firmware_spec.rb +315 -0
- data/spec/lib/meshtastic/admin_spec.rb +412 -1
- data/spec/lib/meshtastic/apponly_spec.rb +1 -1
- data/spec/lib/meshtastic/atak_spec.rb +129 -4
- data/spec/lib/meshtastic/bluetooth_spec.rb +1 -1
- data/spec/lib/meshtastic/channel_spec.rb +2 -20
- data/spec/lib/meshtastic/config_spec.rb +2 -20
- data/spec/lib/meshtastic/connection_status_spec.rb +1 -1
- data/spec/lib/meshtastic/deviceonly_spec.rb +1 -1
- data/spec/lib/meshtastic/localonly_spec.rb +1 -1
- data/spec/lib/meshtastic/mesh_interface_spec.rb +31 -0
- data/spec/lib/meshtastic/portnums_spec.rb +2 -2
- metadata +24 -6
|
@@ -4,6 +4,6 @@ require 'spec_helper'
|
|
|
4
4
|
|
|
5
5
|
describe Meshtastic::Localonly do
|
|
6
6
|
it 'decodes an empty LocalConfig' do
|
|
7
|
-
expect(described_class.decode_config(Meshtastic::LocalConfig.new.to_proto)).to be_a(Meshtastic::LocalConfig)
|
|
7
|
+
expect(described_class.decode_config(bytes: Meshtastic::LocalConfig.new.to_proto)).to be_a(Meshtastic::LocalConfig)
|
|
8
8
|
end
|
|
9
9
|
end
|
|
@@ -3,4 +3,35 @@
|
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
|
|
5
5
|
describe Meshtastic::MeshInterface do
|
|
6
|
+
it 'rejects PKI on MQTT instead of falling back to channel encryption' do
|
|
7
|
+
expect do
|
|
8
|
+
described_class.new.send_data(
|
|
9
|
+
data: Meshtastic::Data.new(portnum: :ADMIN_APP, payload: 'request'),
|
|
10
|
+
port_num: Meshtastic::PortNum::ADMIN_APP,
|
|
11
|
+
from: 1, to: 2, via: :mqtt, pki_encrypted: true, public_key: 'k' * 32
|
|
12
|
+
)
|
|
13
|
+
end.to raise_error(ArgumentError, /PKI.*radio/)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'rejects malformed recipient public keys' do
|
|
17
|
+
expect do
|
|
18
|
+
described_class.new.send_data(
|
|
19
|
+
data: Meshtastic::Data.new(payload: 'request'),
|
|
20
|
+
from: 1, to: 2, psks: nil, pki_encrypted: true, public_key: 'short'
|
|
21
|
+
)
|
|
22
|
+
end.to raise_error(ArgumentError, /32 bytes/)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'preserves explicit radio PKI parameters for remote administrative packets' do
|
|
26
|
+
wire = described_class.new.send_data(
|
|
27
|
+
data: Meshtastic::Data.new(portnum: :ADMIN_APP, payload: 'request'),
|
|
28
|
+
port_num: Meshtastic::PortNum::ADMIN_APP,
|
|
29
|
+
from: 1, to: 2, via: :radio, psks: nil,
|
|
30
|
+
pki_encrypted: true, public_key: 'k' * 32
|
|
31
|
+
)
|
|
32
|
+
packet = Meshtastic::ToRadio.decode(wire).packet
|
|
33
|
+
expect(packet.pki_encrypted).to be true
|
|
34
|
+
expect(packet.public_key).to eq('k' * 32)
|
|
35
|
+
expect(packet.decoded.payload).to eq('request')
|
|
36
|
+
end
|
|
6
37
|
end
|
|
@@ -4,7 +4,7 @@ require 'spec_helper'
|
|
|
4
4
|
|
|
5
5
|
describe Meshtastic::Portnums do
|
|
6
6
|
it 'resolves names and numbers' do
|
|
7
|
-
expect(described_class.lookup(:TEXT_MESSAGE_APP)).to eq(1)
|
|
8
|
-
expect(described_class.lookup(1)).to eq(:TEXT_MESSAGE_APP)
|
|
7
|
+
expect(described_class.lookup(value: :TEXT_MESSAGE_APP)).to eq(1)
|
|
8
|
+
expect(described_class.lookup(value: 1)).to eq(:TEXT_MESSAGE_APP)
|
|
9
9
|
end
|
|
10
10
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: meshtastic
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.181
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 0day Inc.
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 4.0.
|
|
18
|
+
version: 4.0.21
|
|
19
19
|
type: :development
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 4.0.
|
|
25
|
+
version: 4.0.21
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: bundler-audit
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -99,14 +99,14 @@ dependencies:
|
|
|
99
99
|
requirements:
|
|
100
100
|
- - '='
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: 1.
|
|
102
|
+
version: 1.84.0
|
|
103
103
|
type: :runtime
|
|
104
104
|
prerelease: false
|
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
|
107
107
|
- - '='
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 1.
|
|
109
|
+
version: 1.84.0
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
name: mqtt
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -285,6 +285,11 @@ files:
|
|
|
285
285
|
- bin/meshtastic_autoinc_version
|
|
286
286
|
- build_gem.sh
|
|
287
287
|
- documentation/README.md
|
|
288
|
+
- documentation/admin-channel.md
|
|
289
|
+
- documentation/admin-config.md
|
|
290
|
+
- documentation/admin-firmware-nordic.md
|
|
291
|
+
- documentation/admin-firmware-serial.md
|
|
292
|
+
- documentation/admin-firmware.md
|
|
288
293
|
- documentation/admin.md
|
|
289
294
|
- documentation/apponly.md
|
|
290
295
|
- documentation/atak.md
|
|
@@ -318,6 +323,12 @@ files:
|
|
|
318
323
|
- git_commit.sh
|
|
319
324
|
- lib/meshtastic.rb
|
|
320
325
|
- lib/meshtastic/admin.rb
|
|
326
|
+
- lib/meshtastic/admin/channel.rb
|
|
327
|
+
- lib/meshtastic/admin/config.rb
|
|
328
|
+
- lib/meshtastic/admin/firmware.rb
|
|
329
|
+
- lib/meshtastic/admin/firmware/ble.rb
|
|
330
|
+
- lib/meshtastic/admin/firmware/nordic_dfu.rb
|
|
331
|
+
- lib/meshtastic/admin/firmware/serial_bootloader.rb
|
|
321
332
|
- lib/meshtastic/admin_pb.rb
|
|
322
333
|
- lib/meshtastic/apponly.rb
|
|
323
334
|
- lib/meshtastic/apponly_pb.rb
|
|
@@ -377,6 +388,13 @@ files:
|
|
|
377
388
|
- meshtastic.gemspec
|
|
378
389
|
- reinstall_gemset.sh
|
|
379
390
|
- sig/meshtastic.rbs
|
|
391
|
+
- spec/conventions_spec.rb
|
|
392
|
+
- spec/lib/meshtastic/admin/channel_spec.rb
|
|
393
|
+
- spec/lib/meshtastic/admin/config_spec.rb
|
|
394
|
+
- spec/lib/meshtastic/admin/firmware/ble_spec.rb
|
|
395
|
+
- spec/lib/meshtastic/admin/firmware/nordic_dfu_spec.rb
|
|
396
|
+
- spec/lib/meshtastic/admin/firmware/serial_bootloader_spec.rb
|
|
397
|
+
- spec/lib/meshtastic/admin/firmware_spec.rb
|
|
380
398
|
- spec/lib/meshtastic/admin_pb_spec.rb
|
|
381
399
|
- spec/lib/meshtastic/admin_spec.rb
|
|
382
400
|
- spec/lib/meshtastic/apponly_pb_spec.rb
|
|
@@ -459,7 +477,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
459
477
|
- !ruby/object:Gem::Version
|
|
460
478
|
version: '0'
|
|
461
479
|
requirements: []
|
|
462
|
-
rubygems_version: 4.0.
|
|
480
|
+
rubygems_version: 4.0.21
|
|
463
481
|
specification_version: 4
|
|
464
482
|
summary: Ruby gem for Meshtastic
|
|
465
483
|
test_files: []
|