Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • L llvm-project
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 35
    • Issues 35
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 14
    • Merge requests 14
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Morello
  • llvm-project
  • Merge requests
  • !193

[ Work-in-progress ] CHERIseed

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Ruben requested to merge cheriseed into morello/dev Jul 12, 2022
  • Overview 4
  • Commits 31
  • Pipelines 2
  • Changes 156

The merge request is for cheriseed branch which is currently work in progress. At this stage it is meant to be a request for comments: any feedback (on idea, implementation, documentation) is very welcome and greatly appreciated.


CHERIseed is a software-only implementation of CHERI semantics.

The aim of CHERIseed is to facilitate the porting effort of existing code to CHERI hardware platforms, by providing some of the functionality while running on a host machine that is not capability aware. This functionality includes:

  • 128-bit pointers for a 64-bit address space (64 bits of "metadata").
  • Bounds checking on pointer dereferences.
  • Permissions checking for pointers where permissions are restricted.

By compiling and running code with CHERIseed a user can experiment with CHERI programming (see the CHERI C/C++ Programming Guide), and identify potentially unsafe code that would fault on real CHERI hardware. CHERIseed does not provide the same security guarantees as CHERI hardware, and should not be used as a security-enforcing tool.


Cc: @jrtc27 @arichardson @rwatson @brooks @jhb @sbaranga

Edited Jul 12, 2022 by Ruben
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: cheriseed