Skip to content
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

Explore the use of CBMC #39

Closed
hanno-becker opened this issue May 22, 2024 · 5 comments
Closed

Explore the use of CBMC #39

hanno-becker opened this issue May 22, 2024 · 5 comments
Labels
enhancement New feature or request

Comments

@hanno-becker
Copy link
Contributor

hanno-becker commented May 22, 2024

Relates to: #37

CBMC can be used to verify the absence of certain classes of undefined behaviour in C programs. This issue asks for an exploration of the potential use of CBMC for hardening of mlkem-c-aarch64.

Acceptance criteria:

  • PR opened illustrating the use of CBMC for one or more selected C functions in mlkem-c-aarch64.
  • Decision made on whether to use CBMC for wider parts of mlkem-c-aarch64.
@hanno-becker hanno-becker added the enhancement New feature or request label May 22, 2024
@hanno-becker
Copy link
Contributor Author

@hanno-becker
Copy link
Contributor Author

Started addressing this in #46

@hanno-becker
Copy link
Contributor Author

@mkannwischer @cothan Can you give CBMC a go and make sure you can reproduce the proofs? We should all be able to write / [have CBMC] prove simple specs.

@hanno-becker
Copy link
Contributor Author

@mkannwischer @cothan I am positive about the use of CBMC to prove absence of [some classes of] UD for the C code. I don't think it will be feasible to show functional correctness for anything beyond very simple functions.

I think we should strive to roll this out more broadly.

@hanno-becker
Copy link
Contributor Author

Initial investigation promising, we'll try to roll out CBMC more broadly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant