macOS 在哪里跟踪签名的 zip

Where does macOS keep track of signed zips

我在 macOS 上签署了一个 zip 文件,但它的 SHA256 校验和没有改变。 macOS 在哪里跟踪这个签名过程?非常感谢!

$ codesign -dvvvv foo.zip 
foo.zip: code object is not signed at all

$ openssl dgst -sha256 foo.zip 
SHA256(foo.zip)= 30b954e18296f858e40f7bdeebb554cbef59e3f1e6ba947bda89c6342687e431

$ codesign --force --timestamp --sign "..." foo.zip 

$ openssl dgst -sha256 foo.zip 
SHA256(foo.zip)=30b954e18296f858e40f7bdeebb554cbef59e3f1e6ba947bda89c6342687e431

$ codesign -dvvvv foo.zip 
// output of signature

对于 "generic" 文件(格式不支持嵌入式签名的文件,如 Mach-O 二进制文件或磁盘映像),codesign 将以以下形式附加代码签名扩展属性:

$ codesign --force --timestamp --sign "..." sub.zip
$ ls -l@ sub.zip 
-rw-r--r--@ 1 gordon  staff  12449 Jul 12 22:36 sub.zip
    com.apple.cs.CodeDirectory    127 
    com.apple.cs.CodeRequirements     164 
    com.apple.cs.CodeRequirements-1   163 
    com.apple.cs.CodeSignature   9012

这里的数字是每个扩展属性中数据的字节数。您可以使用 xattr 命令更详细地查看它们。