Skip to content
@OpenSCMS

Open SCMS

Open Source Implementation of an IEEE1609.2.1 SCMS

Welcome to the OpenSCMS Project

OpenSCMS

OpenSCMS is currently the only open-source, deployable, Security Credential Management System (SCMS) aligned with IEEE 1609.2.1 (2022). It is built for modularity, observability, and real-world scale.

Rust is used for the main web-oriented aspects of the backend, providing memory safety and high performance in terms of requests-per-second. C is used for all the cryptographic operations where performance is key, as well as encoding and decoding of the SPDUs used throughout the specification.

The official ASN.1 definitions from the IEEE are used to generate C-based CODECs using the open source ASN1C transpiler.

All libraries used have permissive licenses, allowing their incorporation in proprietary solutions.

When deployed to a local minikube instance, it allows development and testing of End Entity implementations in the V2X security space.

If integrated with a complete SCMS manager such as the one from scmsmanager.org it has the potential to be deployed in a production environment.

Project Code Structure

The code for OpenSCMS resides in a set of repositories

Repo Contents
OpenSCMS The Rust based server
oscms-codecs-bridge The top level C bridge between the server and the CODECs layers.
oscms-codecs-api An abstract API for accessing C-based CODECs.
oscms-asn1c-codecs A concrete implementation of the CODECs API using the ASN1C transpiler
oscms-asn1c-generated The raw codecs generated sing the ASN1C transpiler.
ieee1609dot2dot1-asn A fork of the official IEEE ASN.1 files, slightly modified to work with ASN1C
etsi_ts103097-asn ETSE ASN.1 Source files used by those from IEEE

Each repository contains its own README file with details on downloading, compiling, and testing,

Getting Involved

First, please read the Code of Conduct and Contribution Guide, which go into details about how our community works.

We follow the general GitHub pull request workflow, where you make and test your changes in your forked copy and then raise a pull request to have them incorporated into the official repositories.

Forking the repositories

If you wish to make code contributions, you will need to fork the entire set of repositories. This is due to the use of relative paths for the git submodules.

If you have the Github CLI installed, you can fork all of the code repositories, and clone them to your working directory, with the following commands

gh repo fork --clone https://github.com/OpenSCMS/oscms-codecs-bridge -- --recurse-submodules
gh repo fork --clone https://github.com/OpenSCMS/oscms-asn1c-codecs -- --recurse-submodules
gh repo fork --clone https://github.com/OpenSCMS/oscms-codecs-api -- --recurse-submodules
gh repo fork --clone https://github.com/OpenSCMS/oscms-asn1c-generated -- --recurse-submodules
gh repo fork --clone https://github.com/OpenSCMS/OpenSCMS -- --recurse-submodules
gh repo fork --clone https://github.com/OpenSCMS/oscms-ci-docker -- --recurse-submodules
gh repo fork --clone https://github.com/OpenSCMS/ieee1609dot2dot1-asn -- --recurse-submodules
gh repo fork --clone https://github.com/OpenSCMS/etsi_ts103097-asn -- --recurse-submodules

If you don't want to clone at the time of forking, use the following.

gh repo fork --clone=false https://github.com/OpenSCMS/oscms-codecs-bridge
gh repo fork --clone=false https://github.com/OpenSCMS/oscms-asn1c-codecs
gh repo fork --clone=false https://github.com/OpenSCMS/oscms-codecs-api
gh repo fork --clone=false https://github.com/OpenSCMS/oscms-asn1c-generated
gh repo fork --clone=false https://github.com/OpenSCMS/OpenSCMS
gh repo fork --clone=false https://github.com/OpenSCMS/oscms-ci-docker
gh repo fork --clone=false https://github.com/OpenSCMS/ieee1609dot2dot1-asn
gh repo fork --clone=false https://github.com/OpenSCMS/etsi_ts103097-asn

Support

The primary channel for support is through the project discussions forum, and raising issues on individual repositories.

As a last resort, you can also reach out to a subset of Organization owners via email at support@openscms.net.

Licensing

This project is licensed under the Apache-2.0 License. See the LICENSE file for details.

Pinned Loading

  1. OpenSCMS OpenSCMS Public

    Main Server Backend

    Rust

  2. oscms-codecs-bridge oscms-codecs-bridge Public

    1609.2.1 CODECS Agnostic bridge between server and concrete codecs implementation

    C

  3. oscms-codecs-api oscms-codecs-api Public

    Abstract API to all concrete CODECs implementations

    C

  4. oscms-asn1c-codecs oscms-asn1c-codecs Public

    Concrete implementation of the CODECS API for ASN1C generated codecs

    C

  5. oscms-asn1c-generated oscms-asn1c-generated Public

    ASN1C Transpiler generated codecs

    C

  6. oscms-coer-explorer oscms-coer-explorer Public

    Interactive debug tool for exploring COER encoded files

    C++

Repositories

Showing 10 of 12 repositories

Top languages

Loading…

Most used topics

Loading…