Ссылка SecTransform.h
Для лучше следования за этим заголовком необходимо понять следующие условия:
Преобразуйте A, преобразовывают, преобразовывает данные от одной формы до другого. Обзоры, шифрование и дешифрование являются всеми примерами преобразований. Каждый преобразовывает, выполняет единственную работу. Transform Group A преобразовывает группу, направленный (обычно) граф без петель преобразований. Следуют поток преобразования к следующему Преобразованию в графике, и т.д. пока не достигнут конец графика.
Преобразования атрибута могут иметь один или несколько атрибутов. Эти атрибуты являются параметрами для преобразований и могут влиять на работу преобразования. Значение атрибута может быть установлено со статическими данными, или от значения атрибута в других преобразовывают путем соединения атрибутов с помощью SecTransformConnectTransforms API.
Внешние Преобразования Представления могут быть созданы программно или из внешнего представления. Внешние представления могут быть созданы из существующих преобразований.
Существует много типов доступных преобразований. Они документируются в их собственные заголовки. Функции в этом заголовке применимы ко всем, преобразовывает.
Включенные заголовки
<CoreFoundation/CoreFoundation.h>
-
Возвратите CFTypeID для SecTransformGroup.
Объявление
Swift
func SecGroupTransformGetTypeID() -> CFTypeID
Objective C
CFTypeID SecGroupTransformGetTypeID ( void );
Возвращаемое значение
CFTypeID
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Работа водопроводчика для преобразований.
Объявление
Swift
func SecTransformConnectTransforms(_
sourceTransformRef
: SecTransform!, _sourceAttributeName
: CFString!, _destinationTransformRef
: SecTransform!, _destinationAttributeName
: CFString!, _group
: SecGroupTransform!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<SecGroupTransform>!Objective C
SecGroupTransformRef SecTransformConnectTransforms ( SecTransformRef sourceTransformRef, CFStringRef sourceAttributeName, SecTransformRef destinationTransformRef, CFStringRef destinationAttributeName, SecGroupTransformRef group, CFErrorRef *error );
Параметры
sourceTransformRef
Преобразование, отправляющее данные в destinationTransformRef.
sourceAttributeName
Имя атрибута в sourceTransformRef, снабжающем данными к destinationTransformRef. Любой атрибут преобразования может использоваться в качестве источника.
destinationTransformRef
Преобразование, имеющее один из его атрибутов быть установленным с данными от sourceTransformRef параметра.
destinationAttributeName
Имя атрибута в destinationTransformRef, данные которого установлены с данными от атрибута sourceTransformRef sourceAttributeName. Любой атрибут преобразования может быть установлен.
group
Для обеспечения ссылочной целостности преобразования объединены в цепочку вместе в направленный граф и помещены в группу. Каждый преобразовывает, который составляет график, должен быть помещен в ту же группу. После того, как SecTransformRef был размещен в группу путем вызова SecTransformConnectTransforms, это может быть выпущено, поскольку группа сохранит преобразование. CFRelease группа после выполнения его, или когда Вы определяете Вас, никогда не будет выполнять его.
В примере ниже, вывод trans1 установлен быть вводом trans2. Вывод trans2 установлен быть вводом trans3. Так как та же группа использовалась для соединений, эти три преобразования находятся в той же группе.
SecGroupTransformRef group =SecTransformCreateGroupTransform();
CFErrorRef error = NULL;
SecTransformRef trans1; // previously created using a
// Transform construction API
// like SecEncryptTransformCreate
SecTransformRef trans2; // previously created using a
// Transform construction API
// like SecEncryptTransformCreate
SecTransformRef trans3; // previously created using a
// Transform construction API
// like SecEncryptTransformCreate
SecTransformConnectTransforms(trans1, kSecTransformOutputAttributeName,
trans2, kSecTransformInputAttributeName,
group, &error);
SecTransformConnectTransforms(trans2, kSecTransformOutputAttributeName,
trans3, kSecTransformInputAttributeName.
group, &error);
CFRelease(trans1);
CFRelease(trans2);
CFRelease(trans3);
CFDataRef = (CFDataRef)SecTransformExecute(group, &error, NULL, NULL);
CFRelease(group);
error
Дополнительный указатель на CFErrorRef. Если ошибка произошла, это значение установлено. Если не NULL, вызывающая сторона ответственна за выпуск CFErrorRef.
Возвращаемое значение
Значение возвратилось, параметр SecGroupTransformRef. Это будет допускать объединение в цепочку вызовов к SecTransformConnectTransforms.
Обсуждение
Эта функция помещает, преобразовывает в группу путем присоединения значения атрибута, каждый преобразовывает к атрибуту других, преобразовывают. Обычно атрибут, снабжающий данными, является атрибутом kSecTransformAttrOutput, но это не требование. Это может использоваться для установки атрибута как Соль с выходным атрибутом случайного числа, преобразовывают. Эта функция возвращает ошибку, и именованный атрибут не будет изменен, если SecTransformExecute ранее вызвали на преобразовании.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Создайте CFDictionaryRef, содержащий достаточно информации, чтобы быть в состоянии воссоздать преобразование.
Объявление
Swift
func SecTransformCopyExternalRepresentation(_
transformRef
: SecTransform!) -> Unmanaged<CFDictionary>!Objective C
CFDictionaryRef SecTransformCopyExternalRepresentation ( SecTransformRef transformRef );
Параметры
transformRef
transformRef, который будет воплощен.
Обсуждение
Эта функция возвращает CFDictionaryRef, содержащий достаточную информацию, чтобы быть в состоянии воссоздать это преобразование. Можно передать этот CFDictionaryRef SecTransformCreateFromExternalRepresentation, чтобы быть в состоянии воссоздать преобразование. Словарь может также быть выписан к диску с помощью методов, описанных здесь.
http://developer .apple.com/mac/library/documentation/CoreFoundation/Conceptual/CFPropertyLists/Articles/Saving.html
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Создает экземпляр преобразования из CFDictionary параметров.
Объявление
Swift
func SecTransformCreateFromExternalRepresentation(_
dictionary
: CFDictionary!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<SecTransform>!Objective C
SecTransformRef SecTransformCreateFromExternalRepresentation ( CFDictionaryRef dictionary, CFErrorRef *error );
Параметры
dictionary
Словарь параметров.
error
Дополнительный указатель на CFErrorRef. Если ошибка произошла, это значение установлено. Если не NULL вызывающая сторона ответственна за выпуск CFErrorRef.
Возвращаемое значение
Указатель на объект SecTransformRef. Необходимо выпустить объект с CFRelease, когда Вы сделаны с ним. NULL будет возвращен, если ошибка произошла во время инициализации, и если параметр ошибок является ненулем, это содержит определенные ошибочные данные.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Создайте SecGroupTransformRef, действующий как контейнер для ряда связанного, преобразовывает.
Объявление
Swift
func SecTransformCreateGroupTransform() -> Unmanaged<SecGroupTransform>!
Objective C
SecGroupTransformRef SecTransformCreateGroupTransform ( void );
Возвращаемое значение
Ссылка на SecGroupTransform.
Обсуждение
SecGroupTransformRef является контейнером для всех преобразований, которые находятся в направленном графе. SecGroupTransformRef может использоваться с SecTransformExecute, SecTransformExecuteAsync и SecTransformCopyExternalRepresentation APIs. В то время как намерение состоит в том, что SecGroupTransformRef willwork точно так же, как S SecTransformRef, который в настоящее время является не случаем. Используя SecGroupTransformRef с SecTransformConnectTransforms, SecTransformSetAttribute и SecTransformGetAttribute не определено.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Выполняет Преобразование, или преобразуйте группу синхронно.
Объявление
Swift
func SecTransformExecute(_
transformRef
: SecTransform!, _errorRef
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> AnyObject!Objective C
CFTypeRef SecTransformExecute ( SecTransformRef transformRef, CFErrorRef *errorRef );
Параметры
transformRef
Преобразование для выполнения.
errorRef
Дополнительный указатель на CFErrorRef. Если ошибка произошла во время инициализации или выполнения преобразования или группы, это значение будет установлено. Если не NULL вызывающая сторона будет ответственна за выпуск возвращенного CFErrorRef.
Возвращаемое значение
Это - результат преобразования. Определенное значение определяется выполняемым преобразованием.
Обсуждение
Существует две фазы, происходящие при выполнении преобразования. Первые проверки фазы, которые будут видеть, имеют ли ranforms весь их требуемый набор атрибутов. Если GroupTransform выполняется, то требуемый атрибут для преобразования допустим, если это подключено к другому атрибуту, предоставляющему требуемое значение. Если какой-либо из требуемых атрибутов не будет установлен или соединен тогда, то SecTransformExecute не выполнит преобразование, но возвратит NULL, и apporiate ошибка помещается в параметр ошибок, если это не NULL.
Вторая фаза является фактическим выполнением преобразования. SecTransformExecute выполняет преобразование или GroupTransform и когда вся обработка завершается, это возвращает результат. Если ошибка произойдет во время выполнения, то вся обработка остановится, и NULL будет возвращен, и надлежащая ошибка будет помещена в параметр ошибок, если это не будет NULL.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Выполняется Преобразовывают или преобразовывают группу асинхронно.
Объявление
Swift
func SecTransformExecuteAsync(_
transformRef
: SecTransform!, _deliveryQueue
: dispatch_queue_t!, _deliveryBlock
: SecMessageBlock!)Objective C
void SecTransformExecuteAsync ( SecTransformRef transformRef, dispatch_queue_t deliveryQueue, SecMessageBlock deliveryBlock );
Параметры
transformRef
Преобразование для выполнения.
deliveryQueue
Очередь отгрузки, на которой можно поставить результаты этого преобразования.
deliveryBlock
SecMessageBlock для асинхронного получения результатов преобразования.
Обсуждение
Работы SecTransformExecuteAsync точно так же, как SecTransformExecute API за исключением того, что это возвращает результаты deliveryBlock. Могут быть результаты multple в зависимости от преобразования. Блок знает, что обработка завершена, когда isFinal параметр устанавливается на истину. Если ошибка происходит, параметр ошибок блока установлен, и isFinal параметр будет установлен на истину.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Находит элемент группы преобразования ее именем.
Объявление
Swift
func SecTransformFindByName(_
transform
: SecGroupTransform!, _name
: CFString!) -> Unmanaged<SecTransform>!Objective C
SecTransformRef SecTransformFindByName ( SecGroupTransformRef transform, CFStringRef name );
Параметры
transform
Группа преобразования, которая будет искаться.
name
Имя преобразования, которое будет найдено.
Возвращаемое значение
Элемент группы преобразования или NULL, если не был найден элемент.
Обсуждение
Когда экземпляр преобразования будет создаваться, ему дадут уникальное имя. Это имя может использоваться, чтобы найти что экземпляр в группе. В то время как возможно изменить это уникальное имя с помощью SecTransformSetAttribute API, разработчики не должны делать так. Это позволяет SecTransformFindTransformByName работать правильно.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Получите текущую стоимость атрибута преобразования.
Объявление
Swift
func SecTransformGetAttribute(_
transformRef
: SecTransform!, _key
: CFString!) -> Unmanaged<AnyObject>!Objective C
CFTypeRef SecTransformGetAttribute ( SecTransformRef transformRef, CFStringRef key );
Параметры
transformRef
Преобразование, значение атрибута которого будет получено.
key
Имя атрибута для получения.
Возвращаемое значение
Значение атрибута. Если этот атрибут устанавливается, поскольку вывод других преобразовывает, и SecTransformExecute не вызвали на преобразовании или если атрибут не делает существует тогда, NULL будет возвращен.
Обсуждение
Это можно вызвать после SecTransformExecute.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Установите статическое значение как значение атрибута в преобразовании. Это полезно для вещей как итеративные количества и другие неизменяющиеся значения.
Объявление
Swift
func SecTransformSetAttribute(_
transformRef
: SecTransform!, _key
: CFString!, _value
: AnyObject!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> BooleanObjective C
Boolean SecTransformSetAttribute ( SecTransformRef transformRef, CFStringRef key, CFTypeRef value, CFErrorRef *error );
Параметры
transformRef
Преобразование, атрибут которого должен быть установлен.
key
Имя атрибута, который будет установлен.
value
Статическое значение для установки для именованного атрибута.
error
Дополнительный указатель на CFErrorRef. Если ошибка произошла, это значение установлено. Если не NULL вызывающая сторона ответственна за выпуск CFErrorRef.
Возвращаемое значение
Если вызов успешно выполнился, возвращает true. Если ошибка произошла, параметр ошибок имеет больше информации о случае возникновения отказов.
Обсуждение
Этот API допускает установку статических данных в атрибут для преобразования. Это в отличие от функции SecTransformConnectTransforms, устанавливающей производные данные. Эта функция возвратит ошибку, и именованный атрибут не будет изменен, если SecTransformExecute вызвали на преобразовании.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
SecMessageBlock используется экземпляром преобразования для передачи сообщений во время асинхронных операций.
Объявление
Swift
typealias SecMessageBlock = (AnyObject!, CFError!, Boolean) -> Void
Objective C
typedef void (^SecMessageBlock)( CFTypeRef message, CFErrorRef error, Boolean isFinal);
Параметры
message
CFType, содержащий сообщение. Это - то, куда возвращаются или промежуточные или конечные результаты.
error
Если ошибка произошла, это будет содержать CFErrorRef, иначе это будет NULL. Если не NULL вызывающая сторона ответственна за выпуск CFErrorRef.
isFinal
Если установлено сообщение возвратилось, конечный результат иначе, это - промежуточный результат.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
Посмотрите раздел Overview выше для документации уровня заголовка.
-
Объявление
Swift
let kSecTransformAbortAttributeName: CFString! let kSecTransformAbortOriginatorKey: CFString! let kSecTransformDebugAttributeName: CFString! let kSecTransformErrorDomain: CFString! let kSecTransformInputAttributeName: CFString! let kSecTransformOutputAttributeName: CFString! let kSecTransformPreviousErrorKey: CFString! let kSecTransformTransformName: CFString!
Objective C
CF_EXPORT const CFStringRef kSecTransformAbortAttributeName ; CF_EXPORT const CFStringRef kSecTransformAbortOriginatorKey; CF_EXPORT const CFStringRef kSecTransformDebugAttributeName ; CF_EXPORT const CFStringRef kSecTransformErrorDomain; CF_EXPORT const CFStringRef kSecTransformInputAttributeName ; CF_EXPORT const CFStringRef kSecTransformOutputAttributeName ; CF_EXPORT const CFStringRef kSecTransformPreviousErrorKey; CF_EXPORT const CFStringRef kSecTransformTransformName ;
Константы
-
kSecTransformAbortAttributeName
kSecTransformAbortAttributeName
Имя атрибута аварийного прекращения работы.
Доступный в OS X v10.7 и позже.
-
kSecTransformAbortOriginatorKey
kSecTransformAbortOriginatorKey
Значение этого ключа будет преобразованием, заставившим цепочку преобразования прерываться.
Доступный в OS X v10.7 и позже.
-
kSecTransformDebugAttributeName
kSecTransformDebugAttributeName
Установите этот атрибут в CFWriteStream. Это будет сигнализировать преобразование для записи отладочной информации в поток. Если этот атрибут будет установлен в kCFBooleanTrue тогда, то отладочные данные будут выписаны к stderr.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorDomain
kSecTransformErrorDomain
Домен для CFErrorRefs, создаваемого Преобразованиями
Доступный в OS X v10.7 и позже.
-
kSecTransformInputAttributeName
kSecTransformInputAttributeName
Имя входного атрибута.
Доступный в OS X v10.7 и позже.
-
kSecTransformOutputAttributeName
kSecTransformOutputAttributeName
Имя выходного атрибута.
Доступный в OS X v10.7 и позже.
-
kSecTransformPreviousErrorKey
kSecTransformPreviousErrorKey
Если многократные ошибки произошли, CFErrorRef, возвращающийся из Transfo] комната, API будет иметь userInfo словарь и тот словарь, включат предыдущую ошибку kSecTransformPreviousErrorKey.
Доступный в OS X v10.7 и позже.
-
kSecTransformTransformName
kSecTransformTransformName
Имя преобразования.
Доступный в OS X v10.7 и позже.
-
-
Объявление
Swift
var kSecTransformErrorAttributeNotFound: Int { get } var kSecTransformErrorInvalidOperation: Int { get } var kSecTransformErrorNotInitializedCorrectly: Int { get } var kSecTransformErrorMoreThanOneOutput: Int { get } var kSecTransformErrorInvalidInputDictionary: Int { get } var kSecTransformErrorInvalidAlgorithm: Int { get } var kSecTransformErrorInvalidLength: Int { get } var kSecTransformErrorInvalidType: Int { get } var kSecTransformErrorInvalidInput: Int { get } var kSecTransformErrorNameAlreadyRegistered: Int { get } var kSecTransformErrorUnsupportedAttribute: Int { get } var kSecTransformOperationNotSupportedOnGroup: Int { get } var kSecTransformErrorMissingParameter: Int { get } var kSecTransformErrorInvalidConnection: Int { get } var kSecTransformTransformIsExecuting: Int { get } var kSecTransformInvalidOverride: Int { get } var kSecTransformTransformIsNotRegistered: Int { get } var kSecTransformErrorAbortInProgress: Int { get } var kSecTransformErrorAborted: Int { get } var kSecTransformInvalidArgument: Int { get }
Objective C
enum { kSecTransformErrorAttributeNotFound = 1, kSecTransformErrorInvalidOperation = 2, kSecTransformErrorNotInitializedCorrectly = 3, kSecTransformErrorMoreThanOneOutput = 4, kSecTransformErrorInvalidInputDictionary = 5, kSecTransformErrorInvalidAlgorithm = 6, kSecTransformErrorInvalidLength = 7, kSecTransformErrorInvalidType = 8, kSecTransformErrorInvalidInput = 10, kSecTransformErrorNameAlreadyRegistered = 11, kSecTransformErrorUnsupportedAttribute = 12, kSecTransformOperationNotSupportedOnGroup = 13, kSecTransformErrorMissingParameter = 14, kSecTransformErrorInvalidConnection = 15, kSecTransformTransformIsExecuting = 16, kSecTransformInvalidOverride = 17, kSecTransformTransformIsNotRegistered = 18, kSecTransformErrorAbortInProgress = 19, kSecTransformErrorAborted = 20, kSecTransformInvalidArgument = 21 };
Константы
-
kSecTransformErrorAttributeNotFound
kSecTransformErrorAttributeNotFound
Атрибут не был найден.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidOperation
kSecTransformErrorInvalidOperation
Была опробована недопустимая работа.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorNotInitializedCorrectly
kSecTransformErrorNotInitializedCorrectly
Требуемая инициализация отсутствует. Это наиболее вероятно отсутствие требуемый атрибут.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorMoreThanOneOutput
kSecTransformErrorMoreThanOneOutput
Преобразование имеет ошибку внутренней маршрутизации, вызвавшую многократные выводы вместо единственного дискретного вывода. Если SecTransformExecute уже вызвали, это произойдет.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidInputDictionary
kSecTransformErrorInvalidInputDictionary
Словарь, данный SecTransformCreateFromExternalRepresentation, имеет недопустимые данные.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidAlgorithm
kSecTransformErrorInvalidAlgorithm
Преобразование, нуждающееся в алгоритме как в атрибуте т.е. Знаке и Проверяющее, преобразовывает, получил недопустимый алгоритм.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidLength
kSecTransformErrorInvalidLength
Преобразование, которому нужна длина, такая как обзор, преобразовывает, был дан недопустимую длину.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidType
kSecTransformErrorInvalidType
Недопустимый тип был установлен на атрибуте.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidInput
kSecTransformErrorInvalidInput
Входной набор на преобразовании недопустим. Если набор данных для атрибута не удовлетворяет определенные требования, такие как корректное ключевое использование для подписания данных, это может произойти.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorNameAlreadyRegistered
kSecTransformErrorNameAlreadyRegistered
Пользовательское преобразование определенного имени было уже зарегистрировано.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorUnsupportedAttribute
kSecTransformErrorUnsupportedAttribute
Произошло неправомерное действие, такое как установка атрибута «только для чтения».
Доступный в OS X v10.7 и позже.
-
kSecTransformOperationNotSupportedOnGroup
kSecTransformOperationNotSupportedOnGroup
Неправомерное действие на группе преобразовывает, такие как попытка вызвать SecTransformSetAttribute, произошел.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorMissingParameter
kSecTransformErrorMissingParameter
Преобразование пропускает требуемый атрибут.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidConnection
kSecTransformErrorInvalidConnection
SecTransformConnectTransforms вызвали с преобразованиями в различных группах.
Доступный в OS X v10.7 и позже.
-
kSecTransformTransformIsExecuting
kSecTransformTransformIsExecuting
Недопустимую работу вызвали на Преобразовании, в то время как она выполнялась. См. документацию упорядочивания в области обсуждения SecTransformExecute API
Доступный в OS X v10.7 и позже.
-
kSecTransformInvalidOverride
kSecTransformInvalidOverride
Недопустимое переопределение было дано пользовательскому преобразованию
Доступный в OS X v10.7 и позже.
-
kSecTransformTransformIsNotRegistered
kSecTransformTransformIsNotRegistered
Пользовательское преобразование попросили быть созданным, но не было зарегистрировано преобразование.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorAbortInProgress
kSecTransformErrorAbortInProgress
Атрибут аварийного прекращения работы был установлен, и преобразование находится в процессе закрытия
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorAborted
kSecTransformErrorAborted
Преобразование было прервано.
Доступный в OS X v10.7 и позже.
-
kSecTransformInvalidArgument
kSecTransformInvalidArgument
Недействительный аргумент был дан Преобразованию API
Доступный в OS X v10.7 и позже.
-