Giter Site home page Giter Site logo

colored-dye / sel4_rpi4 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 42.11 MB

CMake 1.90% C 73.83% Makefile 0.63% Shell 1.22% Beef 0.30% HyPhy 0.01% Python 3.78% TeX 0.64% Assembly 0.89% Vim Script 0.02% C++ 15.09% Haskell 0.67% Awk 0.04% sed 0.01% M4 0.01% HTML 0.64% Promela 0.06% GAP 0.02% Isabelle 0.27% Standard ML 0.01%

sel4_rpi4's Introduction

Secure communications system on seL4

Up-to-date examples

(From newer to older):

  1. comm-crypto-relay: Integrate driver output inside Encrypt/Decrypt; Integrate Linux VM.

  2. key-exchange: Based on comm-crypto-rpc-relay, but first establishes two pairs of keys with GCS for each session.

  3. comm-crypto-rpc-relay: Based on comm-crypto-relay, but use RPC calls for driver output.

How to ... ?

  1. Build an app:

Run the script, followed by a subdirectory name in the apps/ directory.

./scripts/build-app.sh comm-crypto-relay

The compiled image is in build/apps/<app_name>/images.

Directory structure

├── apps
│   ├── can                             -- MCP2515 CAN controller driver. Depends on SPI.
│   ├── comm                            -- [Obsolete] Communications system, with ringbuffer and RPCCall.
│   ├── comm-crypto                     -- [Obsolete] Basically the same as comm-crypto-block, with 280-byte plaintext block for each message.
│   ├── comm-crypto-block               -- Encrypted communication between Raspi and GCS, with 64-byte plaintext blocks. Manually craft heartbeat messages.
│   ├── comm-crypto-relay               -- [Crypto example] Encrypted communication between Pixhawk and GCS, relayed by Raspi. With 64-byte plaintext blocks.
│   ├── comm-crypto-rpc-relay           -- [Crypto example with RPC calls] Same as `comm-crypto-relay`, but use RPC calls for output.
│   ├── comm-mavlink-relay              -- [Plaintext example] Relay plaintext messages.
│   ├── comm-mavlink-rpc-relay          -- [Plaintext example with RPC calls] Same as `comm-mavlink-relay `, but use RPC calls for output.
│   ├── comm-packet                     -- Manually craft heartbeat messages.
│   ├── comm-smaccm                     -- [Obsolete] SMACCM structure, periodic dispatcher and monitors.
│   ├── comm-uart                       -- Communications system, with no queues and no ringbuffer.
│   ├── dencypt-test
│   ├── empty
│   ├── gcs-crypto                      -- [Obsolete] Ground Control Station on Linux. Use 280-byte plaintext block for each message.
│   ├── gcs-crypto-block                -- Ground Control Station on Linux. Use 64-byte plaintext blocks.
│   ├── hello
│   ├── hello-camkes-1                  -- "hello world" example with CAmkES.
│   ├── hello-camkes-2                  -- CAmkES dataport/event tutorial.
│   ├── key-exchange                    -- [Crypto example with RPC calls & key exchange] Latest version.
│   ├── spi                             -- SPI driver, yet to be tested.
│   ├── telemetry
│   ├── uart                            -- Two serial devices in a single component.
│   ├── uart2                           -- One serial device in each component.
│   └── uart-timer                      -- Use TimeServer's periodic callback.
├── backup
│   ├── firmware                        -- Firmware on SD card, for seL4 running on Raspberry Pi 4B.
│   ├── kernel
│   ├── projects
│   ├── tools
│   └── USB
├── build
│   └── apps
├── diffs
│   ├── projects
│   └── tools
├── docs
├── GEC                                 -- GEC library. Use 280-byte plaintext blocks.
│   ├── include
│   └── src
├── GEC-block                           -- GEC library. Use 64-byte plaintext blocks.
│   ├── include
│   └── src
├── GEC-block-linux                     -- GEC library for Linux apps. Symbolic link to `GEC-block`.
│   ├── include -> ../GEC-block/include/
│   └── src -> ../GEC-block/src
├── GEC-linux                           -- GEC library for Linux apps. Symbolic link to `GEC`.
│   ├── include -> ../GEC/include/
│   └── src -> ../GEC/src
├── kernel
│   ├── configs
│   ├── include
│   ├── libsel4
│   ├── LICENSES
│   ├── manual
│   ├── src
│   └── tools
├── mavlink                             -- MAVLink library
│   └── include
├── projects
│   ├── capdl
│   ├── global-components
│   ├── musllibc
│   ├── projects_libs
│   ├── seL4_libs
│   ├── seL4_projects_libs
│   ├── sel4runtime
│   ├── sel4-tutorials
│   └── util_libs
├── scripts
└── tools
    ├── camkes
    └── seL4

sel4_rpi4's People

Contributors

colored-dye avatar colorglass avatar

Watchers

 avatar

Forkers

colorglass

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.