Files
youki/experiment/seccomp/Cargo.toml
11e26109a0 Extend experiment seccomp program (#3464)
* update seccomp program of update method and add function

- add default error return code to InstructionData
- add action to Rule
- add action to fn new of Rule and fix test code
- add seccomp compare op code to const
- ported function from libcontainer of seccomp
- update Cargo.toml and lock
- add const of seccomp flags
- add flags to InstructionData
- add derive
- improve implementation to generate filter from LinuxSeccomp
- update main.rs to use oci_spec
- fix format

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* implementation From trait

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* implement seccomp flags if config.json define

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* add BPF Instruction to validate

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* add fn to get nr offset from seccomp_data

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* modify generate BPF program order

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* implement check args of seccomp program and add test code

- modify systemcall of args check logic
- add for test code and add serde to use json
- update gen_validate
- update seccomp_data_args_offset to get args index
- add file for test
- update check argument code
- update check argument code
- fix test code
- remove unusual args from fn to_instruction_with_args
- add test code
- add test case with args
- add test for arm64

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* move test json file to tests

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* change to return Result

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* change fn seccomp_data_args_offset to return Result

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* to change return Result, add unwrap

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* run cargo fmt

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* fix offset size

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* add design pattern to rule

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* change method to return Result

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* change method name

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* improve multipul variable set to use is_none method

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* fix test code

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* insert BPF_JMP to new to omit code

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* omit BPM_JMP from code

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* add check argument count

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* fix if value is 0, set the value

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* fix for cargo clippy

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* change argument string to Path

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* change to return Result and remove unwrap

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* change struct name InstructionData to SeccompProgramPlan

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* implement TryFrom to SeccompProgramPlan

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* update oci-spec-rs

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* errno correctly set to the value of action

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* refactoring testutils.rs to use oci-spec-rs to parse json

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* refactor fn try_from to separate logic

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* fix test code and refactor

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* change type of syscall Vec<String> to Vec<u64> to sort

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* add const to jump_num

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* cargo fmt

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* minor update for test

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* create example dir and move main.rs

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* fix typo

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* update package and toolchain

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* cargo fmt

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* remove unused package

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* organize tests dir

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* update Cargo.toml

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* add readjson file by libseccomp

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* update README

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* cargo fmt
fix warning

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

* fix typo

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>

---------

Signed-off-by: sat0ken <15720506+sat0ken@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-08 08:52:54 +09:00

34 lines
829 B
INI

[package]
name = "seccomp"
version = "0.0.0"
description = "Library for seccomp"
license = "Apache-2.0"
repository = "https://github.com/youki-dev/youki"
homepage = "https://youki-dev.github.io/youki/"
readme = "README.md"
authors = ["youki team"]
edition = "2024"
autoexamples = true
keywords = ["youki", "container", "seccomp"]
[dependencies]
nix = { version = "0.29.0", features = [
"ioctl",
"socket",
"sched",
"mount",
"dir",
] }
thiserror = "1.0.57"
prctl = "1.0.0"
anyhow = "1.0"
syscall-numbers = "3.1.1"
syscalls = { version = "0.6.18", features = ["std", "serde", "aarch64", "x86_64"]}
oci-spec = { version = "0.9.0", features = ["runtime"] }
serde_json = "1.0.138"
derive_builder = "0.20.2"
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
libseccomp = "0.4.0"
tempfile = "3.27.0"