-
Notifications
You must be signed in to change notification settings - Fork 10
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
Removing hacspec #106
Removing hacspec #106
Conversation
3d27a72
to
bb7dda7
Compare
bb7dda7
to
8a28457
Compare
4a721c8
to
780c01a
Compare
Just for context (for observers such as me who are not deeply involved in the crate's development), does that mean that formal verification is going out, or does some successor to hacspec not need so many hoops any more? |
@chrysn TLDR; it's the second option. When @malishav started working towards having formal verification of Thus, the current recommendation from the hacspec team is that we write the code in pure Rust, and the That said, some Rust idioms may not yet be supported by |
4b64e87
to
0d84bec
Compare
a9baa8f
to
56df74f
Compare
56df74f
to
19fd669
Compare
The change allows applications to pick usable C_x (i.e., C_I and C_R) values, which they are in a position to decide, because unlike the EDHOC library, they keep track of all the ongoing exchanges. The c_wrapper API is *not* changed at this point, because the API change would be way too subtle (the "out" parameter would be changed to an "in" parameter). BREAKING CHANGE: This alters the message 1 and 2 API.
…e-application-control Allow applications to pick their C_x
75afa9e
to
c8b13f2
Compare
This is almost there and ready for review, I'm just tweaking the CI step for fstar generation. |
Since hacspec was removed, any feature with 'rust' in the name became obsolete. Before this, a feature like rust-psa would select library version and crypto backend. Now, we have features like cb-psa, which select only the crypto backend.
c8b13f2
to
2238f9f
Compare
At this point, I've ran out of ideas to fix the fstar step on CI. While there are a few things that we could do on our side (like putting |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Congrats on this PR, it is massive and simplifies things so much! I just have a small remark regarding the name of the new features. I find cb-{{backend}}
a bit obscure. Could you rename the corresponding features to crypto-{{backend}}
to be crystal clear what it refers to? Other than that, feel free to merge.
@geonnave: How about we move the F* generation step to be triggered only on releases and we wait for the hacspec team to fix this before releasing a new version? |
We may need to schedule another session for resolving the fstar, say in the
third week of October?
…On Tue, Oct 3, 2023, 18:38 Mališa Vučinić ***@***.***> wrote:
At this point, I've ran out of ideas to fix the fstar step on CI. While
there are a few things that we could do on our side (like putting
generate_connection_identifier_cbor behind a feature flag), having fstar
generation run without any errors depends on fixes from the hacspec side.
Maybe we should just comment it out until hax is updated. What do you think
@malishav <https://github.com/malishav> ?
@geonnave <https://github.com/geonnave>: How about we move the F*
generation step to be triggered only on releases and we wait for the
hacspec team to fix this before releasing a new version?
@W95Psp <https://github.com/W95Psp>: do you have any update on the
updates needed to get the Rust version to generate F*?
—
Reply to this email directly, view it on GitHub
<#106 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABFUVSYIOZAIQVW4ZC64D4DX5Q5P3AVCNFSM6AAAAAA5PN2N62VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBVGM2DKNZRGM>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
That looks nice! Skip
|
4b70cd5
to
c1ccb48
Compare
@malishav thanks for the review, did the suggested renaming. @karthikbhargavan I created a group chat on Zulip so we can coordinate the meeting. @W95Psp excellent, thanks for the detailed report.
|
Oh, right! Then, if |
With the interim change of having the |
Awesome, congrats on getting this through. I've gathered from following the discussions that there are some style preferences or requirements that are (now that fstar is generated only on releases) not forcibly upheld now, such as a strong no-go for while loops (which is actually nice b/c we don't really need an unbounded Turing machine for EDHOC) and a soft preference against early return. Is there a comprehensive list somewhere that contributors can read up on to avoid? |
@W95Psp tagging you here, so that we can maybe avoid bothering you too much with hax-compatibility questions in the future 😄 |
The plan is to delete all things related to the
hacspec
sub-crate.On the other hand, we are keeping the
hacspec-crypto
crypto backend, as it both (1) serves as a good software-only alternative crypto backend and (2) can be used to along with thecargo hax into fstar
command. Note that to do this, I had to do a "mini-wrapper" of secret integers insidehacspec-crypto
. The reason is that all the cryptographic functions inhacspec-crypto
expect arrays of secret integers, but our EDHOC implementation has no concept of them anymore. Later, we may want to re-add secret integer handling (in places where it makes sense), but for now let's keep it simple and have it isolated inhacspec-crypto
.