Skip to content

Commit ed972ed

Browse files
Release v1.1
* Add organize-tool for automated file/folder management * Add workspace selection to C5-DEC interaction session * Update user manual: SSDLC, README
1 parent 90fd817 commit ed972ed

17 files changed

Lines changed: 200 additions & 211 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
# 1.1 (2025-05-12)
2+
3+
## Added
4+
5+
- The open-source `organize-tool` to the `C5-DEC dev container` for automated file/folder management
6+
- Custom workspace management (e.g., a user-defined path to directory residing outside project folder) via the C5-DEC interactive session: `c5dec.sh session <workspace>`
7+
- Table of contents to the SSDLC manual page
8+
9+
## Modified
10+
11+
- User manual pages related to SSDLC to detail the new workspace management feature, AI-enabled design and specification for the C5-DEC method, the new `organize-tool`, and integrated the Transformer page
12+
- README to detail the roadmap items related to including privacy-aware local GenAI models and RAG capabilities and the inclusion of verified implementations of cryptographic algorithms
13+
14+
## Removed
15+
16+
- The manual pages for the deprecated ISMS feature
17+
- The Transformer manual page that has been moved to the SSDLC manual page
18+
119
# 1.0 (2025-05-07)
220

321
Version 1.0 marks the stable release of C5-DEC.

README.md

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ C5-DEC, short for "Common Criteria for Cybersecurity, Cryptography, Clouds – D
44

55
<img src="./docs/manual/_figures/CyFORT-C5CEC-logo.png" alt="cyfort_logo" width="500"/>
66

7-
C5-DEC CAD, the software component of C5-DEC, is a suite of tools for computer-aided design and development (CAD) enforcing the C5-DEC method, The method mainly deals with the creation and evaluation of secure IT systems following a structured and systematic approach, based on the [Common Criteria](https://www.commoncriteriaportal.org) standards, a secure software development life cycle (SSDLC) method, a software verification and validation model (SVVM), and our cyber-physical system security assessment (CPSSA) method.
7+
C5-DEC CAD, the software component of C5-DEC, is a suite of [AI-enabled](./docs/manual/ssdlc.md#ai-enabled-design-and-specification) tools for computer-aided design and development (CAD) enforcing the C5-DEC method. The method mainly deals with the creation and evaluation of secure IT systems following a structured and systematic approach, based on the [Common Criteria](https://www.commoncriteriaportal.org) standards, a secure software development life cycle (SSDLC) method, a software verification and validation model (SVVM), and our cyber-physical system security assessment (CPSSA) method.
88

99
This repository contains the source code and full documentation (requirements, technical specifications, schematics, [user manual](./docs/manual/overview.md), test case specifications and test reports) of C5-DEC CAD, exemplifying the C5-DEC method, which relies on storing, interlinking and processing all software development life cycle (SDLC) artifacts in a unified manner; see our [traceability web page](https://abstractionslab.github.io/c5dec/docs/traceability/index.html) for a concrete example reflecting the technical specifications of C5-DEC CAD itself.
1010

@@ -28,6 +28,8 @@ To this end, C5-DEC CAD is aimed at assisting both system/software designers/dev
2828

2929
C5-DEC consists of two key elements that complement each other to form a coherent ensemble: a software component (C5-DEC CAD) and a knowledge base (KB) consisting of SSDLC, SVV and CPSSA methodologies as well as a [wiki of key CC concepts](./c5dec/assets/database/KnowledgeBase/0_MapofContent.md).
3030

31+
### Knowledge base
32+
3133
As certain parts of our KB reports rely on ISO standards (ISO/IEC/IEEE 12207, ISO 29119:2022 and ISO 29148:2018), if you wish to access them, please contact us at info@abstractionslab.lu. Simply provide evidence that you are eligible for accessing the standard(s), and upon successful verification, we will share the reports.
3234

3335
## Features
@@ -62,22 +64,12 @@ As certain parts of our KB reports rely on ISO standards (ISO/IEC/IEEE 12207, IS
6264

6365
### Secure software development life cycle (SSDLC)
6466

65-
- The KB report is inspired by and builds on ISO/IEC/IEEE 12207 - Software life cycle processes, the European Cooperation for Space Standardization (ECSS) standard ECSS-E-ST-40C, ISO/IEC/IEEE 29119:2022 Software testing, ISO/IEC/IEEE 29148:2018 Requirements engineering, the DevSecOps Platform Independent Model (PIM) by the Software Engineering Institute (SEI) of Carnegie Mellon University (CMU), SAFECode, OWASP, as well as McGraw’s publications on software security;
66-
- A KB report on software verification and validation (SVV) complementing the SSDLC;
67+
- The SSDLC report, part of the [C5-DEC KB](#knowledge-base), is inspired by and builds on ISO/IEC/IEEE 12207 - Software life cycle processes, the European Cooperation for Space Standardization (ECSS) standard ECSS-E-ST-40C, ISO/IEC/IEEE 29119:2022 Software testing, ISO/IEC/IEEE 29148:2018 Requirements engineering, the DevSecOps Platform Independent Model (PIM) by the Software Engineering Institute (SEI) of Carnegie Mellon University (CMU), SAFECode, OWASP, as well as McGraw’s publications on software security;
68+
- Create [new project repositories based on C5-DEC (batteries included)](./docs/manual/ssdlc.md#c5-dec-project-creation): a fresh development repository with containerized development artifacts, all dependencies installed, templates, DocEngine, source code and technical specification processing software for enhancing [SSDLC](./docs/manual/ssdlc.md) and enforcing the C5-DEC method, powered by [Doorstop](https://github.com/doorstop-dev/doorstop), and [**AI-enabled**](./docs/manual/ssdlc.md#ai-enabled-design-and-specification) approach facilitating the generation and [processing of technical specifications](#c5-dec-vs-code-workbench-and-containerized-development-environment), documentation, and design artifacts, including requirements, test cases, and technical reports;
6769
- C5-DEC [DocEngine](./docs/manual/ssdlc.md#c5-dec-docengine-for-report-generation): a flexible, easily extensible, and complete publishing solution based on [Quarto](https://quarto.org/) (an open-source scientific and technical publishing system), enhanced by our Quarto configurations, dedicated LaTeX customizations and pre-render and post-render Python scripts providing a baseline automated publishing pipeline (see [SSDLC](./docs/manual/ssdlc.md) and [CCT](./docs/manual/cct.md));
68-
- Create new project repositories based on C5-DEC (batteries included): a fresh development repository with containerized development artifacts, all dependencies installed, templates, DocEngine, source code and technical specification processing software for enhancing [SSDLC](./docs/manual/ssdlc.md) and enforcing the C5-DEC method, powered by [Doorstop](https://github.com/doorstop-dev/doorstop);
69-
- [Transformer](./docs/manual/transformer.md): a module dedicated to universal document transformation and conversion based on our integration of [Doorstop](https://github.com/doorstop-dev/doorstop), [Quarto](https://github.com/quarto-dev/quarto) and [Pandoc](https://pandoc.org/).
70-
71-
### Cryptography
70+
- [Transformer](./docs/manual/ssdlc.md#transformer): a suite of integrated tools dedicated to universal document transformation, format conversion, content import/export, publishing, and file management automation based on our customized use of [Doorstop](https://github.com/doorstop-dev/doorstop), [Quarto](https://github.com/quarto-dev/quarto), [pandoc](https://pandoc.org/) and [organize](https://github.com/tfeldmann/organize);
71+
- Another [KB](#knowledge-base) element dedicated to software verification and validation (SVV) complementing the SSDLC.
7272

73-
- A containerized and pre-configured deployment of open-source cryptographic software in the development environment for classical cryptography: [GnuPG](https://gnupg.org/), [Kryptor](https://www.kryptor.co.uk/), [Cryptomator CLI](https://github.com/cryptomator/cli);
74-
- A VS Code dev container packaging of [OQS-OpenSSL provider](https://github.com/open-quantum-safe/oqs-provider) for post-quantum cryptography.
75-
- A [guide](./docs/manual/cryptography.md) on the use of the integrated cryptographic software.
76-
77-
### Cyber-Physical System Security Assessment
78-
79-
- A KB report describing the C5-DEC method for Cyber-Physical System Security Assessment (CPSSA);
80-
- A [guide](./docs/manual/cpssa.md) on the use of existing open-source software to enforce the CPSSA method.
8173

8274
### Project (resource) management
8375

@@ -86,6 +78,17 @@ As certain parts of our KB reports rely on ISO standards (ISO/IEC/IEEE 12207, IS
8678
- [Consolidation](./docs/manual/pm.md#time-report-consolidation-assistant) of C5-DEC time sheets;
8779
- Dedicated software for detailed resource and [cost computations](./docs/manual/pm.md#cost-report-computation).
8880

81+
### Cyber-Physical System Security Assessment
82+
83+
- Our CPSSA report, a third [KB element](#knowledge-base), describing the C5-DEC method for Cyber-Physical System Security Assessment (CPSSA);
84+
- A [guide](./docs/manual/cpssa.md) on the use of existing open-source software to enforce the CPSSA method.
85+
86+
### Cryptography
87+
88+
- A containerized and pre-configured deployment of open-source cryptographic software in the development environment for classical cryptography: [GnuPG](https://gnupg.org/), [Kryptor](https://www.kryptor.co.uk/), [Cryptomator CLI](https://github.com/cryptomator/cli);
89+
- A VS Code dev container packaging of [OQS-OpenSSL provider](https://github.com/open-quantum-safe/oqs-provider) for post-quantum cryptography.
90+
- A [guide](./docs/manual/cryptography.md) on the use of the integrated cryptographic software.
91+
8992
## User manual
9093

9194
Please see the [CAD user manual](./docs/manual/overview.md) to learn more about the installation, setup requirements, overall usage and specific modules of C5-DEC CAD. A concise guide for getting quickly started is given below.
@@ -98,7 +101,7 @@ You can visit our [traceability page](https://abstractionslab.github.io/c5dec/do
98101

99102
C5-DEC CAD can be deployed using any of the following methods:
100103

101-
1. Deployment using Docker and our shell scripts: `build-c5dec.sh` and `c5dec.sh`: our runner script (`c5dec.sh`) offers a command mode tailored to the use of the Common Criteria Toolbox (CCT) and the Project Management (PM) modules, as well as an interactive session mode (`c5dec.sh session`) for using the [Transformer](./docs/manual/transformer.md) and [Cryptography](./docs/manual/cryptography.md) features and a PQC entrypoint (`c5dec.sh pqc`).
104+
1. Deployment using Docker and our shell scripts: `build-c5dec.sh` and `c5dec.sh`: our runner script (`c5dec.sh`) offers a command mode tailored to the use of the Common Criteria Toolbox (CCT) and the Project Management (PM) modules, as well as an interactive session mode (`c5dec.sh session`) for using the [Transformer](./docs/manual/ssdlc.md#transformer) and [Cryptography](./docs/manual/cryptography.md) features and a PQC entrypoint (`c5dec.sh pqc`).
102105
2. Deployment in a containerized development environment in VS Code (**recommended for advanced usage, development, data science**): this mode is the preferred option for effective use of the Quarto-based [DocEngine](./docs/manual/ssdlc.md#c5-dec-docengine-for-report-generation), Cryptography and Transformer modules. Note that all the features available via the CLI, TUI and GUI when using the deployment model (1) would also be available using this second approach.
103106

104107
For more details on the installation options, please see the [installation](./docs/manual/installation.md) page of the user manual.
@@ -177,12 +180,14 @@ A summary of the `c5dec.sh` runner options are provided below:
177180
./c5dec.sh <command> -h
178181
```
179182

180-
- To start an interactive C5-DEC session for using the [Transformer](./docs/manual/transformer.md) and [Cryptography](./docs/manual/cryptography.md) features:
183+
- To start an interactive C5-DEC session for using the [Transformer](./docs/manual/ssdlc.md#transformer) and [Cryptography](./docs/manual/cryptography.md) features:
181184

182185
```sh
183-
./c5dec.sh session
186+
./c5dec.sh session <workspace>
184187
```
185188

189+
The argument `<workspace>` can be optionally used to provide the path to a directory on the user's file system (outside the C5-DEC folder); see the [usage section of the start page](./docs/manual/start.md#usage) for more details.
190+
186191
- To use the [OQS-OpenSSL](./docs/manual/cryptography.md#post-quantum-cryptography-pqc) provider for post-quantum cryptography:
187192

188193
```sh
@@ -234,13 +239,17 @@ This would launch the GUI, as shown below, starting a web server that listens on
234239

235240
### C5-DEC VS Code workbench and containerized development environment
236241

237-
Finally, within VS Code, you can access the various user interfaces in the same workbench while also benefitting from dedicated VS Code extensions integrated into our containerized development environment (e.g., Code Spell Checker, Quarto, Jupyter, Data Wrangler, Docker) as well as the code editor's own built-in features.
242+
Finally, using VS Code, you can access the various user interfaces in the same workbench while also benefitting from dedicated VS Code extensions integrated into our containerized development environment (e.g., Code Spell Checker, Quarto, Jupyter, Data Wrangler, Docker) as well as the code editor's own built-in features. The screenshot below highlights an example of how the [C5-DEC method lends itself to AI-powered](./docs/manual/ssdlc.md#ai-enabled-design-and-specification) capabilities.
238243

239244
![C5-DEC CAD in VS Code](./docs/manual/_figures/c5dec-vscode-workbench.png)
240245

241246
## Roadmap
242247

243-
For details on our roadmap and features planned for future releases, please see the [Wiki](https://github.com/AbstractionsLab/c5dec/wiki) section of this repository.
248+
We will continue to enhance C5-DEC CAD with new features and improvements. Some of the planned features include:
249+
- Integrating locally stored generative AI (GenAI) models and implementing a GenAI assistant for the C5-DEC method enhancing its [AI-enabled design and technical specification](./docs/manual/ssdlc.md#ai-enabled-design-and-specification) approach with privacy-aware features and retrieval-augmented generation (RAG) capabilities;
250+
- Enhancing our cryptographic dependencies (e.g., [OQS-OpenSSL](https://github.com/open-quantum-safe/oqs-provider), [OpenSSH](https://www.openssh.com/)) with verified implementations, e.g., [EverCrypt](https://www.microsoft.com/en-us/research/publication/evercrypt-a-fast-veri%EF%AC%81ed-cross-platform-cryptographic-provider/) and [HACL*](https://hacl-star.github.io/HaclValeEverCrypt.html).
251+
252+
For further details on our roadmap and features planned for future releases, please see the [Wiki](https://github.com/AbstractionsLab/c5dec/wiki) section of this repository.
244253

245254
## License
246255

c5dec.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,22 @@ elif [ "$1" == "session" ]
2828
then
2929
# Create the Docker container and open a session for interactive use
3030
echo Launching an interactive C5-DEC CAD session...
31+
# if the user volume is not specified, use the default
32+
# Check if the user volume is specified
33+
if [ -z "$2" ]
34+
then
35+
echo "No user directory specified. Using default: /home/$USER/c5dec/workspace"
36+
echo "Host directory $(pwd)/workspace mapped to container directory /home/$USER/c5dec/workspace"
37+
USER_VOLUME=$(pwd)/workspace:/home/$USER/workspace
38+
else
39+
echo "User directory specified: $2"
40+
echo "Host directory $2 mapped to container directory /home/$USER/workspace"
41+
USER_VOLUME=$2:/home/$USER/workspace
42+
fi
43+
# Check if the user volume is mounted
3144
docker run -it --rm --name $DEV_CONTAINER_NAME \
3245
-v $C5_VOLUME \
46+
-v $USER_VOLUME \
3347
-p 5432:5432 \
3448
$DEV_IMAGE_NAME /bin/bash
3549
elif [ "$1" == "pqc" ]
@@ -45,7 +59,7 @@ then
4559
echo ---
4660
echo ./c5dec.sh
4761
echo ... to open the C5-DEC CLI help menu
48-
echo ./c5dec.sh session
62+
echo ./c5dec.sh session \<user_directory\>
4963
echo ... to start an interactive C5-DEC session
5064
echo ./c5dec.sh pqc
5165
echo ... to use the OQS-OpenSSL provider

c5dec/assets/templates/project/c5dec.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,30 @@ elif [ "$1" == "session" ]
2626
then
2727
# Create the Docker container and open a session for interactive use
2828
echo Launching an interactive c5dec session...
29+
# if the user volume is not specified, use the default
30+
# Check if the user volume is specified
31+
if [ -z "$2" ]
32+
then
33+
echo "No user directory specified. Using default: /home/$USER/c5dec/workspace"
34+
echo "Host directory $(pwd)/workspace mapped to container directory /home/$USER/c5dec/workspace"
35+
USER_VOLUME=$(pwd)/workspace:/home/$USER/workspace
36+
else
37+
echo "User directory specified: $2"
38+
echo "Host directory $2 mapped to container directory /home/$USER/workspace"
39+
USER_VOLUME=$2:/home/$USER/workspace
40+
fi
41+
# Check if the user volume is mounted
2942
docker run -it --rm --name $DEV_CONTAINER_NAME \
3043
-v $C5_VOLUME \
44+
-v $USER_VOLUME \
3145
-p 5432:5432 \
3246
$DEV_IMAGE_NAME /bin/bash
3347
elif [ "$1" == "help" ]
3448
then
3549
echo ---
3650
echo ./c5dec.sh
3751
echo ... to open the c5dec CLI help menu
38-
echo ./c5dec.sh session
52+
echo ./c5dec.sh session \<user_directory\>
3953
echo ... to start an interactive c5dec session
4054
echo ./c5dec.sh \<command\>
4155
echo ... to run a c5dec CLI command

c5dec/assets/templates/project/dev.Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,9 @@ RUN poetry install
136136
# Install python virtual environment for the project
137137
WORKDIR /home/${user}/${c5folder}/${c5folder}
138138

139-
# Install Doorstop
139+
# Install Doorstop and organize-tool
140140
RUN pipx install doorstop==3.0b10
141+
RUN pipx install organize-tool==2.4.3
141142

142143
# Clean up unnecessary packages
143144
USER root

c5dec/frontend/cli/commands.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,10 @@ def run_transform(args, cwd, _, catch=True, **kwargs):
201201
print("To export, try: doorstop export -h")
202202
print("To render, use: quarto render -h")
203203
print("To convert, use: quarto pandoc -h")
204+
print("To automate file management, use: organize -h")
204205
print("---")
205-
print("Also see Transformer page in user manual:")
206-
print("c5dec/docs/manual/transformer.md OR https://github.com/AbstractionsLab/c5dec/blob/main/docs/manual/transformer.md")
206+
print("Also see Transformer section of SSDLC page in user manual:")
207+
print("c5dec/docs/manual/ssdlc.md OR https://github.com/AbstractionsLab/c5dec/blob/main/docs/manual/ssdlc.md")
207208

208209
def run_cpssa(args, cwd, _, catch=True, **kwargs):
209210
print("---")

cleanup.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
echo C5-DEC CAD cleaning up...
33
docker stop c5dec-container || true && docker rm c5dec-container
4-
docker rmi c5dec:v0.2.0
4+
docker rmi c5dec:v1.0
5+
docker stop c5dec-dev-container || true && docker rm c5dec-dev-container
6+
docker rmi c5dec-dev:v1.0
57
echo Done.

dev.Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,9 @@ RUN poetry install
136136
# Install python virtual environment for the project
137137
WORKDIR /home/${user}/${c5folder}/${c5folder}
138138

139-
# Install Doorstop
139+
# Install Doorstop and organize-tool
140140
RUN pipx install doorstop==3.0b10
141+
RUN pipx install organize-tool==2.4.3
141142

142143
# Clean up unnecessary packages
143144
USER root
-125 KB
Loading

0 commit comments

Comments
 (0)