Struct SecStaticCode

Source
#[repr(C)]
pub struct SecStaticCode { /* private fields */ }
Available on crate feature CSCommon only.
Expand description

This is the type of a reference to static code on disk.

See also Apple’s documentation

Implementations§

Source§

impl SecStaticCode

Source

pub unsafe fn create_with_path( path: &CFURL, flags: SecCSFlags, static_code: NonNull<*const SecStaticCode>, ) -> i32

Available on crate feature SecStaticCode only.

Given a path to a file system object, create a SecStaticCode object representing the code at that location, if possible. Such a SecStaticCode is not inherently linked to running code in the system.

It is possible to create a SecStaticCode object from an unsigned code object. Most uses of such an object will return the errSecCSUnsigned error. However, SecCodeCopyPath and SecCodeCopySigningInformation can be safely applied to such objects.

Parameter path: A path to a location in the file system. Only file:// URLs are currently supported. For bundles, pass a URL to the root directory of the bundle. For single files, pass a URL to the file. If you pass a URL to the main executable of a bundle, the bundle as a whole will be generally recognized. Caution: Paths containing embedded // or /../ within a bundle’s directory may cause the bundle to be misconstrued. If you expect to submit such paths, first clean them with realpath(3) or equivalent.

Parameter flags: Optional flags. Pass kSecCSDefaultFlags for standard behavior.

Parameter staticCode: On successful return, contains a reference to the StaticCode object representing the code at path. Unchanged on error.

Returns: Upon success, errSecSuccess. Upon error, an OSStatus value documented in CSCommon.h or certain other Security framework headers.

Source§

impl SecStaticCode

Source

pub unsafe fn create_with_path_and_attributes( path: &CFURL, flags: SecCSFlags, attributes: &CFDictionary, static_code: NonNull<*const SecStaticCode>, ) -> i32

Available on crate feature SecStaticCode only.

Given a path to a file system object, create a SecStaticCode object representing the code at that location, if possible. Such a SecStaticCode is not inherently linked to running code in the system.

It is possible to create a SecStaticCode object from an unsigned code object. Most uses of such an object will return the errSecCSUnsigned error. However, SecCodeCopyPath and SecCodeCopySigningInformation can be safely applied to such objects.

Parameter path: A path to a location in the file system. Only file:// URLs are currently supported. For bundles, pass a URL to the root directory of the bundle. For single files, pass a URL to the file. If you pass a URL to the main executable of a bundle, the bundle as a whole will be generally recognized. Caution: Paths containing embedded // or /../ within a bundle’s directory may cause the bundle to be misconstrued. If you expect to submit such paths, first clean them with realpath(3) or equivalent.

Parameter flags: Optional flags. Pass kSecCSDefaultFlags for standard behavior.

Parameter attributes: A CFDictionary containing additional attributes of the code sought.

Parameter staticCode: On successful return, contains a reference to the StaticCode object representing the code at path. Unchanged on error.

Returns: Upon success, errSecSuccess. Upon error, an OSStatus value documented in CSCommon.h or certain other Security framework headers.

This can be a CFString containing a canonical architecture name (“i386” etc.), or a CFNumber specifying an architecture numerically (see mach/machine.h). This key is ignored if the code is not in Mach-O binary form. If the code is Mach-O but not universal (“thin”), the architecture specified must agree with the actual file contents.

(using the kSecCodeAttributeArchitecture key), specifies any sub-architecture by number. This key is ignored if no main architecture is specified; if it is specified by name; or if the code is not in Mach-O form.

then select the specified framework version. This key is otherwise ignored.

Source§

impl SecStaticCode

Source

pub unsafe fn check_validity( self: &SecStaticCode, flags: SecCSFlags, requirement: Option<&SecRequirement>, ) -> i32

Available on crate feature SecStaticCode only.
Source

pub unsafe fn check_validity_with_errors( self: &SecStaticCode, flags: SecCSFlags, requirement: Option<&SecRequirement>, errors: *mut *mut CFError, ) -> i32

Available on crate feature SecStaticCode only.

Methods from Deref<Target = CFType>§

Source

pub fn downcast_ref<T>(&self) -> Option<&T>
where T: ConcreteType,

Available on crate feature SecCustomTransform only.

Attempt to downcast the type to that of type T.

This is the reference-variant. Use CFRetained::downcast if you want to convert a retained type. See also ConcreteType for more details on which types support being converted to.

Source

pub fn retain_count(&self) -> usize

Available on crate feature SecCustomTransform only.

Get the reference count of the object.

This function may be useful for debugging. You normally do not use this function otherwise.

Beware that some things (like CFNumbers, small CFStrings etc.) may not have a normal retain count for optimization purposes, and can return usize::MAX in that case.

Trait Implementations§

Source§

impl AsRef<AnyObject> for SecStaticCode

Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<CFType> for SecStaticCode

Source§

fn as_ref(&self) -> &CFType

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<SecStaticCode> for SecStaticCode

Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for SecStaticCode

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<CFType> for SecStaticCode

Source§

fn borrow(&self) -> &CFType

Immutably borrows from an owned value. Read more
Source§

impl ConcreteType for SecStaticCode

Available on crate feature SecStaticCode only.
Source§

fn type_id() -> CFTypeID

Returns the type identifier of all SecStaticCode instances.

Source§

impl Debug for SecStaticCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for SecStaticCode

Source§

type Target = CFType

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Hash for SecStaticCode

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for SecStaticCode

Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl PartialEq for SecStaticCode

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for SecStaticCode

Source§

const ENCODING_REF: Encoding

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl Type for SecStaticCode

Source§

fn retain(&self) -> CFRetained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

fn as_concrete_TypeRef(&self) -> &Self

👎Deprecated: this is redundant
Helper for easier transition from the core-foundation crate.
Source§

unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>
where Self: Sized,

👎Deprecated: use CFRetained::retain
Helper for easier transition from the core-foundation crate. Read more
Source§

fn as_CFTypeRef(&self) -> &CFType
where Self: AsRef<CFType>,

👎Deprecated: this is redundant (CF types deref to CFType)
Helper for easier transition from the core-foundation crate.
Source§

unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>
where Self: Sized,

👎Deprecated: use CFRetained::from_raw
Helper for easier transition from the core-foundation crate. Read more
Source§

impl Eq for SecStaticCode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,