49 lines
3.8 KiB
Markdown
49 lines
3.8 KiB
Markdown
* udp.c:
|
|
* Could get rid of 'smol' in here, no other processing is performed in this thread
|
|
* TLVList:
|
|
* The 'Pointer' could be directly used in the TLVListIterator, makes it common
|
|
* Not too happy with the way iterator_consumer is done for ContainerIterator, we could just zip the internal ListIterator instead?
|
|
* Implement the IntoIterator Trait as well for the TLVElement. This was done earlier, but I backtracker after I ran into same lifetime issues
|
|
* Some configurable values like number of exchanges per session, number of sessions supported etc, can be bubbled up to some configurator for this crate. I wonder how that is done.
|
|
* About outgoing counter, is it incremented if we send mutliple acknowledgements to the same retransmitted packet? So let's say peer retransmits a packet with ctr 4, for 3 times. Our response ctr, is, say 20. Then should we respond with 20, 21, 22, or 20, 20, 20?
|
|
* I had to use Box::new() to pin ownership for certain objects. Not yet able to use try_new() in the stable releases, and I am not a fan of APIs that panic. We should mostly look at things like heapless:pool or stuff. These objects should really be in the bss, with a single ownership.
|
|
* It might be more efficient to avoid using .find_element() on TLVs. Earlier it was created this way because the spec mentions that the order may change, but it appears that this is unlikely, looking at the C++ implementation. If so, we could be faster, by just specifying looking for tag followed by value.
|
|
* PASE:
|
|
- Pick some sensible and strong values for PBKDF2{iterCnt and Salt-length} based on SoC capability
|
|
- Verifier should only store w0 and L, w1 shouldn't even be stored
|
|
- Allow some way to open the PASE window
|
|
- Allow some way to pass in the 'passcode' and 'salt'
|
|
- In case of error in any of the legs, return StatusReport
|
|
- Provide a way to delete the exchange
|
|
- SPAKE2+: the check with I (abort if `h*X == I`), as indicated by the RFC is pending
|
|
|
|
* Implement the ARM Fail Safe and Regulatory Config properly. Currently we just ack them to proceed further
|
|
* Currently AEAD, sha256 etc are directly used from rust crates. Instead use implementations from openssl/mbedtls - Done. Upstream MRs pending
|
|
* rust-mbedTLS: We have to do some gymnastics because current APIs only support signature encoded in ASN1 format. Fix this upstream
|
|
* CASE:
|
|
- Handle initial MRP Parameters struct from Sigma1
|
|
* FailSafe:
|
|
- Enable timer and expiration handling for fail-safe context
|
|
* Cert Verification:
|
|
- Time validation (Not Before/Not After)
|
|
- KeyUsage flags and others are pending
|
|
* Transport Mgr:
|
|
- Add plain_encode and proto_encode in Packet
|
|
- A new proto_tx should be created in the acks_to_send loop also, otherwise, there is a potential chance of reuse
|
|
- 'transport' object's ownership needs to be inside session, or in the least 'exchange'
|
|
- Sending 'close session' is pending on session reclamation because 'transport' object isn't owned
|
|
- Convert the SessionHandle to &Session? Why maintain a separate object for this?
|
|
* Exchange:
|
|
- What should happen when an exchange is closed by the higher layer, our tx-retrans is pending, and we got a retrans for that exchange?
|
|
* ACL:
|
|
- Device-Type based ACLs
|
|
- NOC CAT
|
|
- Applying ACLs to commands (requires some restructuring of the commands)
|
|
- I think we can the encoder to AccessReq Object making it a complete object for access within the DM
|
|
- List processing of attribute write is missing in IM. List behaviour is add/edit/delete. Currently we only do 'add'
|
|
* Interaction Model
|
|
- List processing of write attributes is different (delete, modify, edit), needs to be handled
|
|
* DataModel:
|
|
- Shall we use a CmdEncoder as a parameter for all the handle_commands()?
|
|
- Need to define common data types for cluster_id_t, endpoint_id_t so their sizes are constantly defined somewhere
|
|
|