---
title: Code Signing Services
framework: security
role: collectionGroup
role_heading: API Collection
path: security/code-signing-services
---

# Code Signing Services

Examine and validate signed code running on the system.

## Overview

Overview Code signing is a macOS security technology that you use to certify that an app was created by you. Once an app is signed, the system can detect any change to the app—whether the change is introduced accidentally or by malicious code. You can control how your signed code loads signed plug-ins and other signed code without invalidating the signatures of the host code or of the guest (dynamically loaded) code. You work with code objects that represent uniquely identified elements of running code in the system. In addition to UNIX processes, these elements can include scripts, applets, widgets, and so forth. You also work with static code objects that represent code in the file system. Static code includes applications, tools, frameworks, plug-ins, scripts, and so on. Generally, a code object has a specific static code object from which it originates and that holds its static signing data. The reverse, however, is not true—given a static code object, it is not possible to find, enumerate, or control any code object that originated from it.

## Topics

### Code Objects

- [SecCode](security/seccode.md)
- [SecCodeCopySelf(_:_:)](security/seccodecopyself(_:_:).md)
- [SecCSFlags](security/seccsflags.md)
- [SecCodeGetTypeID()](security/seccodegettypeid().md)

### Static Code

- [SecStaticCode](security/secstaticcode.md)
- [SecStaticCodeCreateWithPath(_:_:_:)](security/secstaticcodecreatewithpath(_:_:_:).md)
- [SecStaticCodeCreateWithPathAndAttributes(_:_:_:_:)](security/secstaticcodecreatewithpathandattributes(_:_:_:_:).md)
- [Code Attributes](security/code-attributes.md)
- [SecStaticCodeGetTypeID()](security/secstaticcodegettypeid().md)

### Working with Code Objects

- [SecCodeCopyPath(_:_:_:)](security/seccodecopypath(_:_:_:).md)
- [SecCodeCopyStaticCode(_:_:_:)](security/seccodecopystaticcode(_:_:_:).md)
- [Code Signing Architecture Flags](security/code-signing-architecture-flags.md)

### Code Signatures

- [SecCodeCopySigningInformation(_:_:_:)](security/seccodecopysigninginformation(_:_:_:).md)
- [Code Signing Information Flags](security/code-signing-information-flags.md)
- [Signing Information Dictionary Keys](security/signing-information-dictionary-keys.md)
- [SecCodeSignatureFlags](security/seccodesignatureflags.md)
- [SecCSDigestAlgorithm](security/seccsdigestalgorithm.md)

### Code Requirements

- [Applying Code Requirements](security/applying-code-requirements.md)
- [SecCodeCopyDesignatedRequirement(_:_:_:)](security/seccodecopydesignatedrequirement(_:_:_:).md)
- [SecRequirement](security/secrequirement.md)
- [SecRequirementGetTypeID()](security/secrequirementgettypeid().md)
- [SecRequirementType](security/secrequirementtype.md)

### Code Requirements as Data

- [SecRequirementCopyData(_:_:_:)](security/secrequirementcopydata(_:_:_:).md)
- [SecRequirementCreateWithData(_:_:_:)](security/secrequirementcreatewithdata(_:_:_:).md)

### Code Requirements as Text

- [SecRequirementCopyString(_:_:_:)](security/secrequirementcopystring(_:_:_:).md)
- [SecRequirementCreateWithString(_:_:_:)](security/secrequirementcreatewithstring(_:_:_:).md)
- [SecRequirementCreateWithStringAndErrors(_:_:_:_:)](security/secrequirementcreatewithstringanderrors(_:_:_:_:).md)

### Guest Code

- [Hosting Guest Code](security/hosting-guest-code.md)
- [SecCodeCopyGuestWithAttributes(_:_:_:_:)](security/seccodecopyguestwithattributes(_:_:_:_:).md)
- [Null Guest Handle](security/null-guest-handle.md)
- [SecCodeStatus](security/seccodestatus.md)
- [Guest Creation Flags](security/guest-creation-flags.md)
- [Guest Attribute Dictionary Keys](security/guest-attribute-dictionary-keys.md)
- [SecGuestRef](security/secguestref.md)

### Guest Management

- [SecCodeCopyHost(_:_:_:)](security/seccodecopyhost(_:_:_:).md)
- [SecCodeMapMemory(_:_:)](security/seccodemapmemory(_:_:).md)

### Tasks

- [SecTaskCreateFromSelf(_:)](security/sectaskcreatefromself(_:).md)
- [SecTaskCreateWithAuditToken(_:_:)](security/sectaskcreatewithaudittoken(_:_:).md)
- [SecTask](security/sectask.md)
- [SecTaskGetTypeID()](security/sectaskgettypeid().md)
- [SecTaskCopySigningIdentifier(_:_:)](security/sectaskcopysigningidentifier(_:_:).md)
- [SecTaskCopyValueForEntitlement(_:_:_:)](security/sectaskcopyvalueforentitlement(_:_:_:).md)
- [SecTaskCopyValuesForEntitlements(_:_:_:)](security/sectaskcopyvaluesforentitlements(_:_:_:).md)

### Code Signature Validity

- [SecCodeCheckValidity(_:_:_:)](security/seccodecheckvalidity(_:_:_:).md)
- [SecCodeCheckValidityWithErrors(_:_:_:_:)](security/seccodecheckvaliditywitherrors(_:_:_:_:).md)
- [SecStaticCodeCheckValidity(_:_:_:)](security/secstaticcodecheckvalidity(_:_:_:).md)
- [SecStaticCodeCheckValidityWithErrors(_:_:_:_:)](security/secstaticcodecheckvaliditywitherrors(_:_:_:_:).md)
- [Static Code Validation Flags](security/static-code-validation-flags.md)

### Result Codes

- [Code Signing Services Result Codes](security/code-signing-services-result-codes.md)
- [User Info Dictionary Error Keys](security/user-info-dictionary-error-keys.md)

## See Also

### Related Documentation

- [Code Signing Guide](apple-archive/documentation/Security/Conceptual/CodeSigningGuide/Introduction.md)
