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

Finish prepareSCMP #360

Open
jcp19 opened this issue Jun 18, 2024 · 1 comment
Open

Finish prepareSCMP #360

jcp19 opened this issue Jun 18, 2024 · 1 comment

Comments

@jcp19
Copy link
Contributor

jcp19 commented Jun 18, 2024

  • introduce ghost field in *SCION for when some package is manually created vs when it is obtained from decoding from bytes
    • verify fns that come from the go packet layer interfaces for both cases,
      • DecodeFromBytes should set the manuallyBuilt flag to false and should have a postcondition expressing that.
    • identify functions which are called only for one value of 'manuallyCreated' and add it as precondition/simplify the specs of these functions (e.g., SetSrcAddr, GetAddr)
    • Add public getter for this field to use in spec
  • simplify *SCION.Mem() by removing duplicated expressions with lets
  • remove the instance of HeaderMem from Mem(), fold it when needed and remove fractional permissions from the body, pass fractional permission to HeaderMem instead
    • this will allow us to write acc(s) instead of explicit access to all fields
@jcp19
Copy link
Contributor Author

jcp19 commented Aug 31, 2024

We would benefit from having support for multiple contracts per function; this would allow us to verify the body of prepareSCMP in a maintainable way

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant