Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pesign-obs-integration for 
openSUSE:Factory checked in at 2026-08-04 21:30:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pesign-obs-integration (Old)
 and      /work/SRC/openSUSE:Factory/.pesign-obs-integration.new.16738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pesign-obs-integration"

Tue Aug  4 21:30:08 2026 rev:66 rq:1369298 version:10.2+git20260731.2d86941

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/pesign-obs-integration/pesign-obs-integration.changes
    2026-05-08 16:42:01.948856512 +0200
+++ 
/work/SRC/openSUSE:Factory/.pesign-obs-integration.new.16738/pesign-obs-integration.changes
 2026-08-04 21:30:19.191561774 +0200
@@ -1,0 +2,7 @@
+Fri Jul 31 08:03:46 UTC 2026 - [email protected]
+
+- Update to version 10.2+git20260731.2d86941:
+  * README: Add document for signing a EFI_SIGNATURE_LIST as a auth file on OBS
+  * pesign-repackage.spec.in: Attache timestamp to auth file
+
+-------------------------------------------------------------------

Old:
----
  pesign-obs-integration-10.2+git20260506.67eda76.obscpio

New:
----
  pesign-obs-integration-10.2+git20260731.2d86941.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pesign-obs-integration.spec ++++++
--- /var/tmp/diff_new_pack.fA0Js7/_old  2026-08-04 21:30:20.203596887 +0200
+++ /var/tmp/diff_new_pack.fA0Js7/_new  2026-08-04 21:30:20.207597025 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package pesign-obs-integration
 #
-# Copyright (c) 2026 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -22,7 +22,7 @@
 %endif
 
 Name:           pesign-obs-integration
-Version:        10.2+git20260506.67eda76
+Version:        10.2+git20260731.2d86941
 Release:        0
 Summary:        Macros and scripts to sign the kernel and bootloader
 License:        GPL-2.0-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.fA0Js7/_old  2026-08-04 21:30:20.283599662 +0200
+++ /var/tmp/diff_new_pack.fA0Js7/_new  2026-08-04 21:30:20.291599940 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/openSUSE/pesign-obs-integration.git</param>
-              <param 
name="changesrevision">626534cdcd41806bee2fa31c551b9221ea983df0</param></service></servicedata>
+              <param 
name="changesrevision">2d86941ad1a5d530fc53a689c3c8cc20b117a481</param></service></servicedata>
 (No newline at EOF)
 

++++++ pesign-obs-integration-10.2+git20260506.67eda76.obscpio -> 
pesign-obs-integration-10.2+git20260731.2d86941.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pesign-obs-integration-10.2+git20260506.67eda76/README.md 
new/pesign-obs-integration-10.2+git20260731.2d86941/README.md
--- old/pesign-obs-integration-10.2+git20260506.67eda76/README.md       
2026-05-06 08:31:23.000000000 +0200
+++ new/pesign-obs-integration-10.2+git20260731.2d86941/README.md       
2026-07-31 09:57:07.000000000 +0200
@@ -33,10 +33,13 @@
 builds new RPMs with signed files. The supported file types are:
 
 - *.ko
-  - Signature appended to the module
+    - Signature appended to the module
 - efi binaries
-  - Signature embedded in a header. If a HMAC checksum named
-    .$file.hmac exists, it is regenerated
+    - Signature embedded in a header. If a HMAC checksum named
+      .$file.hmac exists, it is regenerated
+- db, KEK and PK auth files
+    - The pkcs#7 SignedData signature embedded in the 
EFI_VARIABLE_AUTHENTICATION_2
+      header of the final auth file.
 
 Debian packages can use the dh-signobs debhelper to automate signing and
 repacking. Build-depend on dh-signobs and add --with signobs to the dh line
@@ -72,3 +75,57 @@
 my-find-supplements
 pci_ids-%{version}
 ```
+## Examples
+
+### signing db, KEK and PK auth files
+
+Here is an example for signing a ESL (EFI_SIGNATURE_LIST) through open build 
service. It will produce a auth file. e.g. a KEK.auth.
+
+```
+%build
+# https://github.com/microsoft/secureboot_objects/issues/157
+export TIMESTAMP="2010-03-06 19:17:21"
+
+# Generate signable binary file as the source file for signing
+# Set timestamp and EFI_VARIABLE_APPEND_WRITE attribute
+sign-efi-sig-list -t "$TIMESTAMP" -a -o KEK 
MicrosoftAndThirdParty/Firmware/KEK.bin KEK.auth
+
+%install
+export BRP_PESIGN_FILES='%{_sysconfdir}/uefi/certs/KEK.auth'
+```
+
+In the above case, the KEK.bin is ESL file a which is from Microsoft's 
secureboot object repo:
+```
+URL:            https://github.com/microsoft/secureboot_objects/releases
+# x64, sha256:624c8629f4aab631064fde7d098ad60204288267b6e6edaab50a852ba7dd382b
+Source0:        
https://github.com/microsoft/secureboot_objects/releases/download/v%{version}/edk2-x64-secureboot-binaries.tar.gz
+# aarch64, 
sha256:bf5a51e79815698013b9a062d489235cd042d0b1f9370a0a7c27a05367c95ed3
+Source1:        
https://github.com/microsoft/secureboot_objects/releases/download/v%{version}/edk2-aarch64-secureboot-binaries.tar.gz
+```
+
+The first 'sign-efi-sig-list -o' command will produce a signable binary file 
as the source file for signing to signing server:
+```
+man sign-efi-sig-list
+       -o     Do not sign, but output a file of the exact bundle to be signed
+```
+Please note that the timestamp is a fixed '2010-03-06 19:17:21' value. The 
reason for Microsoft using it is in the issue#157 of Microsoft's 
secureboot_objects repo as the above URL.
+
+The format of signable binary file (intput source):
+```
+KEK.signable.bin
+[ Variable Name ][   Vendor GUID  ][   Attributes  ][    EFI_TIME    ][ 
Payload (ESL) ]
+|<-- N bytes -->||<-- 16 bytes -->||<-- 4 bytes -->||<-- 16 bytes -->||<-- N 
bytes -->|
+                 |<------------------- Fixed 36 bytes -------------->|
+```
+We named the KEK.signable.bin as KEK.auth in our example because 
pesign-repackage.spec.in will attach PKCS#7 SignedData signature back to the 
same file. So we direct named the source file as the target file.
+
+The format of target file (output):
+```
+KEK.auth
+[    EFI_TIME    ][WIN_CERTIFICATE][    CertType    ][ Signature (PKCS#7 
SignedData) ][    Payload (ESL)    ]
+|<-- 16 bytes -->||<-- 8 bytes -->||<-- 16 bytes -->||<---------- N bytes 
---------->||<----- N bytes ----->|
+|<------------- Fixed 40 bytes header ------------->||<------------------- 
Variable size ------------------>|
+                  |<------------------ WIN_CERTIFICATE_UEFI_GUID 
------------------->|
+|<-------------------------- EFI_VARIABLE_AUTHENTICATION_2 
------------------------->|
+```
+For more detail, please check the latest UEFI spec.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pesign-obs-integration-10.2+git20260506.67eda76/pesign-repackage.spec.in 
new/pesign-obs-integration-10.2+git20260731.2d86941/pesign-repackage.spec.in
--- 
old/pesign-obs-integration-10.2+git20260506.67eda76/pesign-repackage.spec.in    
    2026-05-06 08:31:23.000000000 +0200
+++ 
new/pesign-obs-integration-10.2+git20260731.2d86941/pesign-repackage.spec.in    
    2026-07-31 09:57:07.000000000 +0200
@@ -205,12 +205,27 @@
                /usr/lib/rpm/pesign/kernel-sign-file -i pkcs7 -s "$sig" sha256 
"$cert" "$f"
                ;;
        *.auth.sig)
+               # The f file is a signable binary format which is the source 
file for signing
+               # a ESL (EFI_SIGNATURE_LIST). e.g. KEK.signable.bin
+               # [ Variable Name ][   Vendor GUID  ][   Attributes  ][    
EFI_TIME    ][ Payload (ESL) ]
+               # |<-- N bytes -->||<-- 16 bytes -->||<-- 4 bytes -->||<-- 16 
bytes -->||<-- N bytes -->|
                /usr/lib/rpm/pesign/kernel-sign-file -N -P -d -C "$cert" -i 
pkcs7 -s "$sig" sha256 "$cert" "$f"
                fbase="${f##*/}"
                fbase="${fbase%.auth}"
                fbase="${fbase%%-*}"
+               # Extract the timestamp from the signable binary file. It will 
be attached to auth file
+               EFI_TIMESTAMP=$(perl -0777 -ne '
+                   my $l = 
/^(\x4b\x00\x45\x00\x4b\x00|\x64\x00\x62\x00\x78\x00)/ ? 6 : 4;
+                   printf "%04d-%02d-%02d %02d:%02d:%02d\n", unpack("v C C C C 
C", substr($_, $l + 20, 16));
+               ' "$f")
+               echo "Extracted Timestamp: ${EFI_TIMESTAMP}"
+               # Extract the EFI_SIGNATURE_LIST from the f signable binary file
                perl -0777 -npe 's/\A(?:[\040-\176]\0)+.{18}\0\0.{14}\0\0//s' < 
"$f" > "$f.orig"
-               sign-efi-sig-list -i "$f.p7sd" "$fbase" "$f.orig" "$f.tmp"
+               # Attaching timestamp and signature (PKCS#7 SignedData) to 
EFI_VARIABLE_AUTHENTICATION_2
+               # as the header of the signed auth file. e.g. KEK.auth
+               # [    EFI_TIME    ][WIN_CERTIFICATE][    CertType    ][ 
Signature (PKCS#7 SignedData) ][    Payload (ESL)    ]
+               # |<-- 16 bytes -->||<-- 8 bytes -->||<-- 16 bytes 
-->||<---------- N bytes ---------->||<----- N bytes ----->|
+               sign-efi-sig-list -t "${EFI_TIMESTAMP}" -i "$f.p7sd" "$fbase" 
"$f.orig" "$f.tmp"
                mv "$f.tmp" "$f"
                rm -f "$f.p7s" "$f.p7sd" "$f.orig"
                ;;

++++++ pesign-obs-integration.obsinfo ++++++
--- /var/tmp/diff_new_pack.fA0Js7/_old  2026-08-04 21:30:20.555609100 +0200
+++ /var/tmp/diff_new_pack.fA0Js7/_new  2026-08-04 21:30:20.563609377 +0200
@@ -1,5 +1,5 @@
 name: pesign-obs-integration
-version: 10.2+git20260506.67eda76
-mtime: 1778049083
-commit: 67eda7615f9903cca356e00ea92bd533f7eb8833
+version: 10.2+git20260731.2d86941
+mtime: 1785484627
+commit: 2d86941ad1a5d530fc53a689c3c8cc20b117a481
 

Reply via email to