-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Review #19
base: main
Are you sure you want to change the base?
Review #19
Conversation
Thank you, that makes things a lot easier! I am starting to go through these. I will create the PRs upstream and then we can merge them here. |
@Bren2010 thanks for the overview. Validation is not yet complete in OpenMLS, but some of the checks are tracked here. Note that this is a moving target and we are working towards a more holistic view. At first sight, it looks like quite a few checks you mention should already be checked. If you think something is incorrect, we'd be interested in knowing what exactly it is. |
I have added most of the checks to the (still incomplete) validation dashboard we recently set up. There are a few things I am not sure about, though:
Can you elaborate what you mean by this? I understand the RFC allows being more lenient in the validation, but my understanding is that this is up to the implementation.
I believe that is based on this paragraph, is that correct? the responsibility of the AS, and not OpenMLS. That said, we definitely still have some work to do to help the AS to do all the checks.
as well as
I don't think so. My understanding of the RFC is that we only have to check that these are in the required capabilities. |
The problem occurs when a client is syncing with a group after a period of being offline. Many of the KeyPackages that the client reads may have expired, leading the client to reject a commit as invalid, even though the KeyPackages were valid when they were sent. The best solution here is probably to keep some estimate of when data was sent, and verify expirations against that.
Yes. I didn't see a provision to check this but I did see an attempt at checking this when processing ReInits, so I wasn't sure about the API separation you had in mind.
Here is the MUST: https://www.rfc-editor.org/rfc/rfc9420.html#section-13.4-6 |
These are the missing/incorrect validations:
new_member_commit
sender:path
is populated, verify that none of the public keys of the UpdatePath appear in any node of the ratchet tree.signature_key
andencryption_key
.Where a validation has been implemented incorrectly, I tried to leave a note in the code.