Skip to content

binary signed with ldid cannot have its entitlements read by codesign #45

@asdfzxcvbn

Description

@asdfzxcvbn

this issue was discovered by @teflocarbon here

you can read a summary of the issue here: asdfzxcvbn/pyzule-rw#8 (comment)

but the important part is that signtools reads entitlements using: run_process("codesign", "--no-strict", "-d", "--entitlements", ":-", str(component))

this process fails and codesign prints the following to stderr:

Executable=/private/var/folders/d3/3v3wd4390c76s9j518cn498c0000gn/T/tmpcz06ndqj/Payload/Discord.app/Discord
/var/folders/d3/3v3wd4390c76s9j518cn498c0000gn/T/tmpcz06ndqj/Payload/Discord.app: no signature
warning: Specifying ':' in the path is deprecated and will not work in a future release
warning: binary contains an invalid entitlements blob. The OS will ignore these entitlements.

it should be noted that the issue is fixed by patching signtools CI to use ldid to read the entitlements of codesign, but codesign should be able to read the entitlements of a binary signed with ldid

the author also stated that the issue is apparently fixed when the entitlements plist is exported with ldid and then the binary is signed with codesign

so i believe this is likely an ldid error

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions