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

Capability List #102

Merged
merged 12 commits into from Feb 25, 2019
Merged

Capability List #102

merged 12 commits into from Feb 25, 2019

Conversation

JakeOShannessy
Copy link
Contributor

@JakeOShannessy JakeOShannessy commented Feb 20, 2019

This PR is to address #47, #51, and #52. Because these three will require changing how capabilities are assigned they will affect a lot of tests, and will need to be dependent on each other. I will follow this plan:

  • Add an ability to the kernel to append a capability to the capability list of procedure.
  • Replace all of the tests to use this feature.
  • Change the tests to register each procedure initially with no capabilities.
  • Add a syscall (with corresponding capability) to give access to the ability to append capabilities (addressing Procedure#Push_Cap Capability #51).
  • Remove the parameter from the register syscall which allows initially registering capabilities (addressing Procedure#Register Capability #47).
  • Add an ability to the kernel to delete a capability from a capability list.
  • Add a syscall to access deletion of capabilities.

@JakeOShannessy JakeOShannessy mentioned this pull request Feb 20, 2019
7 tasks
@JakeOShannessy
Copy link
Contributor Author

There is a test file in this PR that should have been included in the set entry cap PR.

@Latrasis
Copy link
Member

There is a test file in this PR that should have been included in the set entry cap PR.

Thanks! I did entry tests as well at #103. I can take care of conflicts later.

@JakeOShannessy
Copy link
Contributor Author

Yep sounds good. I saw what you added and wondered why, then noticed I hadn't added my test file to the git commit properly. It also tests it via system calls etc. and will be updated by this PR anyway.

That's something to note, this PR changes pretty much all tests in accordance with issue #47 where we move capabilities to a different stage of registration.

@JakeOShannessy
Copy link
Contributor Author

JakeOShannessy commented Feb 25, 2019

Major features complete, remaining tasks:

  • Add test for delete index out of range.
  • Add test for deleting already delete index.
  • Add tests for re-adding capabilities after deletion.

@JakeOShannessy
Copy link
Contributor Author

There's a big set of questions around minting in delegation. The current PR is complete in that it completes the list above, it simply allows a procedure with the PUSH_CAP capability to add any capability, even one it does not possess.

We need to restrict it so you can only delegate caps you already have, but I think this is a good point to merge and make that into a separate issue.

@JakeOShannessy JakeOShannessy marked this pull request as ready for review February 25, 2019 22:47
Copy link
Member

@Latrasis Latrasis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome Work! I didn't realize you had to replace all registerProcedure calls with manual push cap calls, but that makes sense.

@Latrasis Latrasis merged commit 6d63059 into master Feb 25, 2019
@JakeOShannessy
Copy link
Contributor Author

Awesome Work! I didn't realize you had to replace all registerProcedure calls with manual push cap calls, but that makes sense.

Yeah, it's a natural result of needing to separate the two. We could still abstract it away, but at the time there were too many different cases that they all needed changing anyway.

@Latrasis Latrasis deleted the cap-list branch February 26, 2019 00:29
@Latrasis Latrasis restored the cap-list branch March 2, 2019 23:43
This was referenced Mar 2, 2019
@Latrasis Latrasis deleted the cap-list branch March 26, 2019 22:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants