From 6a8eaacc6ef2bf24663565411b95e1c3d8f911ab Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Fri, 3 May 2024 14:32:41 +0200 Subject: [PATCH] Replace python + rust based gencert2 with C based gencert3 Also, sync r2s_defconfig with latest major changes. Signed-off-by: Joachim Wiberg --- board/common/rootfs/bin/gencert | 67 --------------------------------- configs/aarch64_defconfig | 2 +- configs/r2s_defconfig | 8 ++-- configs/x86_64_defconfig | 2 +- 4 files changed, 6 insertions(+), 73 deletions(-) delete mode 100755 board/common/rootfs/bin/gencert diff --git a/board/common/rootfs/bin/gencert b/board/common/rootfs/bin/gencert deleted file mode 100755 index 3362fd15..00000000 --- a/board/common/rootfs/bin/gencert +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python3 -# Generate a self signed certificate with unlimited expire time - -import argparse - -from cryptography import x509 -from cryptography.x509.oid import NameOID -from cryptography.hazmat.primitives import hashes, serialization -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.backends import default_backend -from datetime import datetime, timedelta - -# Generate private key -private_key = rsa.generate_private_key( - public_exponent=65537, - key_size=2048, - backend=default_backend() - -) - -parser = argparse.ArgumentParser(description="Generate a self signed certificate") -parser.add_argument('--country', required=True, help="Set country") -parser.add_argument('--state', required=True, help="Set state or province name") -parser.add_argument('--city', required=True, help="Set city name") -parser.add_argument('--organisation', required=True, help="Set organisation name") -parser.add_argument('--organisation-unit', required=True, help="Set organisation unit name") -parser.add_argument('--common-name', required=True, help="Set common name") -parser.add_argument('--out-certificate', required=True, help="Output certificate") -parser.add_argument('--out-key', required=True, help="Output key") - -args = parser.parse_args() - - # Builder for certificate -subject = issuer = x509.Name([ - x509.NameAttribute(NameOID.COUNTRY_NAME, args.country), - x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, args.state), - x509.NameAttribute(NameOID.LOCALITY_NAME, args.city), - x509.NameAttribute(NameOID.ORGANIZATION_NAME, args.organisation), - x509.NameAttribute(NameOID.ORGANIZATIONAL_UNIT_NAME, args.organisation_unit), - x509.NameAttribute(NameOID.COMMON_NAME, args.common_name), -]) -certificate = x509.CertificateBuilder().subject_name( - subject -).issuer_name( - issuer -).public_key( - private_key.public_key() -).serial_number( - x509.random_serial_number() -).not_valid_before( - datetime(2000, 1, 1) -).not_valid_after( - datetime(9999, 1, 1) -).add_extension( - x509.SubjectAlternativeName([x509.DNSName(args.common_name)]), - critical=False, -).sign(private_key, hashes.SHA256(), default_backend()) - -# Serialize certificate and private key -with open(args.out_certificate, "wb") as f: - f.write(certificate.public_bytes(serialization.Encoding.PEM)) -with open(args.out_key, "wb") as f: - f.write(private_key.private_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PrivateFormat.PKCS8, - encryption_algorithm=serialization.NoEncryption() - )) diff --git a/configs/aarch64_defconfig b/configs/aarch64_defconfig index cff5cddf..b25df30a 100644 --- a/configs/aarch64_defconfig +++ b/configs/aarch64_defconfig @@ -54,7 +54,6 @@ BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y BR2_PACKAGE_PYTHON3=y -BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y BR2_PACKAGE_PYTHON_GUNICORN=y BR2_PACKAGE_LIBSSH_OPENSSL=y BR2_PACKAGE_LIBSSH2=y @@ -130,6 +129,7 @@ INFIX_SUPPORT="mailto:kernelkit@googlegroups.com" BR2_PACKAGE_CONFD=y BR2_PACKAGE_CURIOS_HTTPD=y BR2_PACKAGE_EXECD=y +BR2_PACKAGE_GENCERT=y BR2_PACKAGE_STATD=y BR2_PACKAGE_FACTORY=y BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y diff --git a/configs/r2s_defconfig b/configs/r2s_defconfig index b363b47b..4ea92309 100644 --- a/configs/r2s_defconfig +++ b/configs/r2s_defconfig @@ -13,7 +13,7 @@ BR2_TARGET_GENERIC_HOSTNAME="infix" BR2_TARGET_GENERIC_ISSUE="Infix by KernelKit" BR2_INIT_FINIT=y BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt ${BR2_EXTERNAL_INFIX_PATH}/board/common/xattrs ${BR2_EXTERNAL_INFIX_PATH}/board/netconf/xattrs" +BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt ${BR2_EXTERNAL_INFIX_PATH}/board/common/xattrs" # BR2_TARGET_ENABLE_ROOT_LOGIN is not set BR2_SYSTEM_BIN_SH_BASH=y BR2_TARGET_GENERIC_GETTY_PORT="@console" @@ -22,8 +22,8 @@ BR2_SYSTEM_DHCP="eth0" BR2_ENABLE_LOCALE_WHITELIST="C en_US en_CA" BR2_GENERATE_LOCALE="en_US en_CA" BR2_TARGET_TZ_INFO=y -BR2_ROOTFS_OVERLAY="${BR2_EXTERNAL_INFIX_PATH}/board/common/rootfs ${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/rootfs ${BR2_EXTERNAL_INFIX_PATH}/board/netconf/rootfs" -BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_INFIX_PATH)/board/aarch64/r2s/post-build.sh ${BR2_EXTERNAL_INFIX_PATH}/board/common/post-build.sh ${BR2_EXTERNAL_INFIX_PATH}/board/netconf/post-build.sh" +BR2_ROOTFS_OVERLAY="${BR2_EXTERNAL_INFIX_PATH}/board/common/rootfs ${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/rootfs" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_INFIX_PATH)/board/aarch64/r2s/post-build.sh ${BR2_EXTERNAL_INFIX_PATH}/board/common/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh support/scripts/genimage.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BR2_EXTERNAL_INFIX_PATH)/board/aarch64/r2s/genimage.cfg" BR2_LINUX_KERNEL=y @@ -64,7 +64,6 @@ BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y BR2_PACKAGE_PYTHON3=y -BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y BR2_PACKAGE_PYTHON_GUNICORN=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBSSH_OPENSSL=y @@ -159,6 +158,7 @@ INFIX_DOC="https://github.com/kernelkit/infix/tree/main/doc" INFIX_SUPPORT="mailto:kernelkit@googlegroups.com" BR2_PACKAGE_CONFD=y BR2_PACKAGE_EXECD=y +BR2_PACKAGE_GENCERT=y BR2_PACKAGE_STATD=y BR2_PACKAGE_FACTORY=y BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y diff --git a/configs/x86_64_defconfig b/configs/x86_64_defconfig index 4bd01e31..28ea0a05 100644 --- a/configs/x86_64_defconfig +++ b/configs/x86_64_defconfig @@ -49,7 +49,6 @@ BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y BR2_PACKAGE_PYTHON3=y -BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y BR2_PACKAGE_PYTHON_GUNICORN=y BR2_PACKAGE_LIBSSH_OPENSSL=y BR2_PACKAGE_LIBSSH2=y @@ -133,6 +132,7 @@ INFIX_SUPPORT="mailto:kernelkit@googlegroups.com" BR2_PACKAGE_CONFD=y BR2_PACKAGE_CURIOS_HTTPD=y BR2_PACKAGE_EXECD=y +BR2_PACKAGE_GENCERT=y BR2_PACKAGE_STATD=y BR2_PACKAGE_FACTORY=y BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y