Commit graph

62 commits

Author SHA1 Message Date
Scott Shawcroft
cdaa606808
Split core and data_model into clearer locations 2024-10-15 14:40:57 -07:00
Scott Shawcroft
355ae656b0
3.12 only 2024-10-15 13:45:12 -07:00
Scott Shawcroft
d7406716c9
Fix NOCStruct decoding. Wrong ids 2024-10-15 11:49:29 -07:00
Scott Shawcroft
2d2ae12f55
Fix chunking 2024-10-11 16:33:28 -07:00
Scott Shawcroft
c12fc55748
chunking broken 2024-10-11 15:59:13 -07:00
Scott Shawcroft
aa514ac3d9
Start subscribe support and report chunking 2024-10-10 16:26:49 -07:00
Scott Shawcroft
edb2996cbf
Fix tests
Broken by reorg and switch to shortest encoding for a value. It is
needed to match encoding used in other implementations for
cryptography inputs.
2024-10-08 15:25:28 -07:00
Scott Shawcroft
3d67377f79
Works with Apple
Add ACL cluster
2024-10-08 15:25:28 -07:00
Scott Shawcroft
ded50ef5e3
Merge pull request #4 from lboue/patch-1
Update README.md
2024-10-07 11:05:43 -07:00
Scott Shawcroft
58f6f3b9d7
Merge branch 'main' into patch-1 2024-10-07 11:05:17 -07:00
Scott Shawcroft
fe9d209f8a
Merge pull request #5 from lboue/patch-2
Add Avahi requirements in README
2024-10-07 11:03:49 -07:00
Scott Shawcroft
ea9072e3df
Merge pull request #6 from lboue/requirements.txt
Create requirements.txt
2024-10-07 11:03:13 -07:00
Ludovic BOUÉ
6da9a2e19d
Create requirements.txt
Python requirements
2024-10-05 15:43:12 +02:00
Ludovic BOUÉ
57756b9bee
Update README.md
Requirements
2024-10-05 14:59:41 +02:00
Ludovic BOUÉ
2978c8eec3
Update README.md
Make copying and pasting easier
2024-10-05 09:19:58 +02:00
Scott Shawcroft
97d7402554
Fixes for matter.js interop 2024-10-04 16:03:35 -07:00
Scott Shawcroft
ede6818f60
InteractionModelRevision 2024-10-03 16:31:17 -07:00
Scott Shawcroft
4a0c4b64ea
Apple commissioning almost works 2024-10-03 15:52:35 -07:00
Scott Shawcroft
7b05d28a3a
Commissioning works from chip-tool! 2024-10-02 16:42:51 -07:00
Scott Shawcroft
e913c3602c
Work on sigma2 response 2024-10-01 16:07:50 -07:00
Scott Shawcroft
457a5a8c7b
Typos 2024-10-01 15:16:16 -07:00
Scott Shawcroft
496efa5fe7
Make certificate generation replayable. Update README 2024-10-01 15:14:01 -07:00
Scott Shawcroft
98bb0e1cec
Add README 2024-10-01 14:38:44 -07:00
Scott Shawcroft
15c6b518cb
Restructure + destinationId 2024-09-27 16:01:11 -07:00
Scott Shawcroft
c406629605
Store NOC and update MDNS entries 2024-09-26 16:07:35 -07:00
Scott Shawcroft
672c8643ea
Get through attestation 2024-09-25 16:39:07 -07:00
Scott Shawcroft
391fc0df27
Move onto attestation 2024-09-24 11:51:42 -07:00
Scott Shawcroft
3dd02a8ba0
Remove more extra container ends 2024-09-23 16:56:11 -07:00
Scott Shawcroft
51ce818a6a
Move adding end container into subclass. Struct requires a tag 2024-09-23 15:56:46 -07:00
Scott Shawcroft
05745b1952
More TLV encoding fixes 2024-09-20 15:24:53 -07:00
Scott Shawcroft
2fe5fac82b
Add command support and split TLV parsing
TLV parsing can now happen without a concrete TLV structure to
follow. Structures are parsed into dictionaries and list/arrays are
into Python lists. They can't be reencoded this way! It is assumed
they will be used to create a more concrete object via `.from_value`

This handles the variable argument structures by allowing calling
code to make them concrete once they determine the type.

tlv.List is now a container superclass like tlv.Structure. It
allows for Structure like attribute access but preserves order
and duplicate keys (which may be unused).

Commands are now supported by subclassing the data model cluster
and overriding the class level Command() object. It stores input
and output type info.
2024-09-19 16:14:05 -07:00
Scott Shawcroft
39c27d0b55
Encrypts and sends but isn't decryptable 2024-09-17 16:04:19 -07:00
Scott Shawcroft
ba30cd9524
Refactor a bit to make things easier to find 2024-09-13 15:50:39 -07:00
Scott Shawcroft
1236513d67
WIP default values 2024-07-31 13:29:03 -07:00
Scott Shawcroft
49d090df42
WIP interaction model parsing and plumbing 2024-07-30 16:35:56 -07:00
Scott Shawcroft
7e235cd49a
WIP: Decrypt first message
Gotta figure out how to decode lists and arrays.
2024-07-29 16:29:26 -07:00
Scott Shawcroft
70d2e652d8
PASE succeeds 2024-07-29 14:31:20 -07:00
Scott Shawcroft
997a65c05d
Debugging crypto mismatch 2024-07-26 16:03:22 -07:00
Scott Shawcroft
5f14782999
Start working on SPAKE2+ 2024-07-24 15:43:52 -07:00
Scott Shawcroft
aa1b3fb4b0
Merge pull request #3 from CharString/adding_stricter_type_annotations
Adding stricter type annotations
2024-07-24 09:59:34 -07:00
Scott Shawcroft
05388f185a
Fix tag encoding, wrap in struct and parse StatusReport 2024-07-23 14:48:38 -07:00
Scott Shawcroft
4778dea5c5
More message encoding and attempted send 2024-07-22 16:24:47 -07:00
Chris Wesseling
b74a17dc1c Change NumberMembers to IntMembers
This makes those struct fields show up as `int` when you hover them in
your editor. And will give red squiglies when assiging values with the
wrong type.
2024-07-22 23:12:29 +02:00
Chris Wesseling
4bd35adc5a Add tlv.FloatMember
Adds a FloatMember that encodes LE floats/doubles as specified in A.11.5
2024-07-22 22:50:24 +02:00
Scott Shawcroft
89c6a97d63
Merge pull request #2 from CharString/adding_stricter_type_annotations
Stricter types
2024-07-22 13:11:32 -07:00
Chris Wesseling
6d7ee584e6 Handle optional and StructMember 2024-07-22 21:41:24 +02:00
Chris Wesseling
d6917a939a Stricter types
Makes things like this give a type error:

```
class NullTest(tlv.TLVStructure):
    n = tlv.BoolMember(None, nullable=True)
    notn = tlv.BoolMember(None, nullable=False)

s = NullTest()
s.n = None  # checks ok
s.notn = None  # doesn't type check
```
2024-07-20 19:38:20 +02:00
Scott Shawcroft
fecabb36b6
Work on sending a message 2024-07-19 15:56:02 -07:00
Scott Shawcroft
6078dbe887
Connect back up to real networking, record packets and enable replay 2024-07-18 14:43:15 -07:00
Scott Shawcroft
e59044735f
Merge pull request #1 from CharString/add-hypothesis-tests
Add hypothesis tests and bounds checks on Integers
2024-07-18 10:41:42 -07:00