---
title: "SecCodeCopySelf(_:_:)"
framework: security
role: symbol
role_heading: Function
path: "security/seccodecopyself(_:_:)"
---

# SecCodeCopySelf(_:_:)

Retrieves the code object for the code making the call.

## Declaration

```swift
func SecCodeCopySelf(_ flags: SecCSFlags, _ self: UnsafeMutablePointer<SecCode?>) -> OSStatus
```

## Parameters

- `flags`: Optional flags; see doc://com.apple.security/documentation/Security/SecCSFlags for possible values. Pass doc://com.apple.security/documentation/Security/SecCSFlags/kSecCSDefaultFlags for standard behavior.
- `self`: On return, a code object representing the caller.

## Return Value

Return Value A result code. See Code Signing Services Result Codes.

## Discussion

Discussion A code object (that is, an object of type SecCode) represents code that is running on the system. The code can be a UNIX process, a script, an applet, a widget, or any other separately-identifiable code. You can use the code object returned by this function as input to other functions in the Code Signing Services API. This function returns a code object for the code that calls it regardless of whether the code is signed. Call the SecCodeCheckValidity(_:_:_:) or SecCodeCheckValidityWithErrors(_:_:_:_:) function to determine whether the code has a valid signature. If the code calling this function is either a dedicated host or has called the SecHostSelectGuest function, then the host is considered to be acting as a proxy for its dedicated or selected guest and the SecCodeCopySelf(_:_:) function returns a code object for that guest.  See kSecCSDedicatedHost for a discussion of dedicated hosts.

## See Also

### Related Documentation

- [SecCodeCopyGuestWithAttributes(_:_:_:_:)](security/seccodecopyguestwithattributes(_:_:_:_:).md)
- [SecCodeCopyHost(_:_:_:)](security/seccodecopyhost(_:_:_:).md)
- [SecCodeCopyStaticCode(_:_:_:)](security/seccodecopystaticcode(_:_:_:).md)
