From 04a5fa5ff797de55d85db97d4dd58a73ed8c5a35 Mon Sep 17 00:00:00 2001 From: Saeed Kazemi Date: Tue, 23 Jul 2024 09:04:39 +0200 Subject: [PATCH] package/parsec: new package Hardware/platform abstraction service for TPMs, HSMs, and Root of Trust https://github.com/parallaxsecond/parsec.git Signed-off-by: Saeed Kazemi [Julien: add upstream patch to fix build] Signed-off-by: Julien Olivain --- DEVELOPERS | 1 + package/Config.in | 1 + ...Fix-unnecessary-qualifications-error.patch | 48 +++++++++++++++++++ package/parsec/Config.in | 15 ++++++ package/parsec/parsec.hash | 3 ++ package/parsec/parsec.mk | 12 +++++ 6 files changed, 80 insertions(+) create mode 100644 package/parsec/0001-Fix-unnecessary-qualifications-error.patch create mode 100644 package/parsec/Config.in create mode 100644 package/parsec/parsec.hash create mode 100644 package/parsec/parsec.mk diff --git a/DEVELOPERS b/DEVELOPERS index dd496db795..16b72eee08 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2907,6 +2907,7 @@ F: package/biosdevname/ N: Saeed Kazemi F: package/eza/ F: package/fd/ +F: package/parsec/ F: package/parsec-tool/ F: package/procs/ F: package/mxt-app/ diff --git a/package/Config.in b/package/Config.in index 17f458eee8..400183516e 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1624,6 +1624,7 @@ menu "Crypto" source "package/nettle/Config.in" source "package/oath-toolkit/Config.in" source "package/openssl/Config.in" + source "package/parsec/Config.in" source "package/parsec-tool/Config.in" source "package/pkcs11-helper/Config.in" source "package/rhash/Config.in" diff --git a/package/parsec/0001-Fix-unnecessary-qualifications-error.patch b/package/parsec/0001-Fix-unnecessary-qualifications-error.patch new file mode 100644 index 0000000000..597c9c9f2c --- /dev/null +++ b/package/parsec/0001-Fix-unnecessary-qualifications-error.patch @@ -0,0 +1,48 @@ +From b76bebf839169fc831712b8a80db1e6ff7535dfd Mon Sep 17 00:00:00 2001 +From: Gowtham Suresh Kumar +Date: Thu, 29 Aug 2024 17:10:06 +0100 +Subject: [PATCH] Fix unnecessary qualifications error + +Upstream: https://github.com/parallaxsecond/parsec/commit/86d4d2ca2f1e873a29f9f4d4bba99fedee19a144 +Signed-off-by: Gowtham Suresh Kumar +Signed-off-by: Julien Olivain +--- + src/front/domain_socket.rs | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/front/domain_socket.rs b/src/front/domain_socket.rs +index 9fb8a0c..a0effa5 100644 +--- a/src/front/domain_socket.rs ++++ b/src/front/domain_socket.rs +@@ -239,15 +239,16 @@ pub mod peer_credentials { + pub mod impl_linux { + use super::UCred; + use libc::{c_void, getsockopt, socklen_t, ucred, SOL_SOCKET, SO_PEERCRED}; ++ use std::io; ++ use std::mem::size_of; + use std::os::unix::io::AsRawFd; + use std::os::unix::net::UnixStream; +- use std::{io, mem}; + + pub fn peer_cred(socket: &UnixStream) -> io::Result { +- let ucred_size = mem::size_of::(); ++ let ucred_size = size_of::(); + + // Trivial sanity checks. +- assert!(mem::size_of::() <= mem::size_of::()); ++ assert!(size_of::() <= size_of::()); + assert!(ucred_size <= u32::MAX as usize); + + let mut ucred_size = ucred_size as socklen_t; +@@ -266,7 +267,7 @@ pub mod peer_credentials { + &mut ucred_size, + ); + +- if ret == 0 && ucred_size as usize == mem::size_of::() { ++ if ret == 0 && ucred_size as usize == size_of::() { + Ok(UCred { + uid: ucred.uid, + gid: ucred.gid, +-- +2.47.1 + diff --git a/package/parsec/Config.in b/package/parsec/Config.in new file mode 100644 index 0000000000..378e8b58b4 --- /dev/null +++ b/package/parsec/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_PARSEC + bool "parsec" + depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS + select BR2_PACKAGE_HOST_RUSTC + help + Hardware/platform abstraction service for TPMs, HSMs, and + Root of Trust + PARSEC is the Platform AbstRaction for SECurity, an + open-source initiative to provide a common API to hardware + security and cryptographic services in a platform-agnostic + way. This abstraction layer keeps workloads decoupled from + physical platform details, enabling cloud-native delivery + flows within the data center and at the edge. + + https://github.com/parallaxsecond/parsec.git diff --git a/package/parsec/parsec.hash b/package/parsec/parsec.hash new file mode 100644 index 0000000000..e1d7b4fbc9 --- /dev/null +++ b/package/parsec/parsec.hash @@ -0,0 +1,3 @@ +# Locally computed +sha256 0b69c30c7e40c65e3c74450e0baf1e3f821ffa624a6dc7aa49f5aa976c42fda0 parsec-1.4.1-cargo2.tar.gz +sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE diff --git a/package/parsec/parsec.mk b/package/parsec/parsec.mk new file mode 100644 index 0000000000..eec9f4d7a3 --- /dev/null +++ b/package/parsec/parsec.mk @@ -0,0 +1,12 @@ +################################################################################ +# +# parsec +# +################################################################################ + +PARSEC_VERSION = 1.4.1 +PARSEC_SITE = $(call github,parallaxsecond,parsec,$(PARSEC_VERSION)) +PARSEC_LICENSE = Apache-2.0 +PARSEC_LICENSE_FILES = LICENSE + +$(eval $(cargo-package))