Ссылка SecTransform.h
Для лучше следования за этим заголовком необходимо понять следующие условия:
Преобразуйте A, преобразовывают, преобразовывает данные от одной формы до другого. Обзоры, шифрование и дешифрование являются всеми примерами преобразований. Каждый преобразовывает, выполняет единственную работу. Transform Group A преобразовывает группу, направленный (обычно) граф без петель преобразований. Следуют поток преобразования к следующему Преобразованию в графике, и т.д. пока не достигнут конец графика.
Преобразования атрибута могут иметь один или несколько атрибутов. Эти атрибуты являются параметрами для преобразований и могут влиять на работу преобразования. Значение атрибута может быть установлено со статическими данными, или от значения атрибута в других преобразовывают путем соединения атрибутов с помощью SecTransformConnectTransforms API.
Внешние Преобразования Представления могут быть созданы программно или из внешнего представления. Внешние представления могут быть созданы из существующих преобразований.
Существует много типов доступных преобразований. Они документируются в их собственные заголовки. Функции в этом заголовке применимы ко всем, преобразовывает.
Включенные заголовки
<CoreFoundation/CoreFoundation.h>
-
Возвратите CFTypeID для SecTransformGroup.
Объявление
Swift
func SecGroupTransformGetTypeID() -> CFTypeIDObjective 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 SecEncryptTransformCreateSecTransformRef trans2; // previously created using a// Transform construction API// like SecEncryptTransformCreateSecTransformRef trans3; // previously created using a// Transform construction API// like SecEncryptTransformCreateSecTransformConnectTransforms(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 );Параметры
transformReftransformRef, который будет воплощен.
Обсуждение
Эта функция возвращает 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Очередь отгрузки, на которой можно поставить результаты этого преобразования.
deliveryBlockSecMessageBlock для асинхронного получения результатов преобразования.
Обсуждение
Работы 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) -> VoidObjective C
typedef void (^SecMessageBlock)( CFTypeRef message, CFErrorRef error, Boolean isFinal);Параметры
messageCFType, содержащий сообщение. Это - то, куда возвращаются или промежуточные или конечные результаты.
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 ;Константы
-
kSecTransformAbortAttributeNamekSecTransformAbortAttributeNameИмя атрибута аварийного прекращения работы.
Доступный в OS X v10.7 и позже.
-
kSecTransformAbortOriginatorKeykSecTransformAbortOriginatorKeyЗначение этого ключа будет преобразованием, заставившим цепочку преобразования прерываться.
Доступный в OS X v10.7 и позже.
-
kSecTransformDebugAttributeNamekSecTransformDebugAttributeNameУстановите этот атрибут в CFWriteStream. Это будет сигнализировать преобразование для записи отладочной информации в поток. Если этот атрибут будет установлен в kCFBooleanTrue тогда, то отладочные данные будут выписаны к stderr.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorDomainkSecTransformErrorDomainДомен для CFErrorRefs, создаваемого Преобразованиями
Доступный в OS X v10.7 и позже.
-
kSecTransformInputAttributeNamekSecTransformInputAttributeNameИмя входного атрибута.
Доступный в OS X v10.7 и позже.
-
kSecTransformOutputAttributeNamekSecTransformOutputAttributeNameИмя выходного атрибута.
Доступный в OS X v10.7 и позже.
-
kSecTransformPreviousErrorKeykSecTransformPreviousErrorKeyЕсли многократные ошибки произошли, CFErrorRef, возвращающийся из Transfo] комната, API будет иметь userInfo словарь и тот словарь, включат предыдущую ошибку kSecTransformPreviousErrorKey.
Доступный в OS X v10.7 и позже.
-
kSecTransformTransformNamekSecTransformTransformNameИмя преобразования.
Доступный в 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 };Константы
-
kSecTransformErrorAttributeNotFoundkSecTransformErrorAttributeNotFoundАтрибут не был найден.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidOperationkSecTransformErrorInvalidOperationБыла опробована недопустимая работа.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorNotInitializedCorrectlykSecTransformErrorNotInitializedCorrectlyТребуемая инициализация отсутствует. Это наиболее вероятно отсутствие требуемый атрибут.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorMoreThanOneOutputkSecTransformErrorMoreThanOneOutputПреобразование имеет ошибку внутренней маршрутизации, вызвавшую многократные выводы вместо единственного дискретного вывода. Если SecTransformExecute уже вызвали, это произойдет.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidInputDictionarykSecTransformErrorInvalidInputDictionaryСловарь, данный SecTransformCreateFromExternalRepresentation, имеет недопустимые данные.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidAlgorithmkSecTransformErrorInvalidAlgorithmПреобразование, нуждающееся в алгоритме как в атрибуте т.е. Знаке и Проверяющее, преобразовывает, получил недопустимый алгоритм.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidLengthkSecTransformErrorInvalidLengthПреобразование, которому нужна длина, такая как обзор, преобразовывает, был дан недопустимую длину.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidTypekSecTransformErrorInvalidTypeНедопустимый тип был установлен на атрибуте.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidInputkSecTransformErrorInvalidInputВходной набор на преобразовании недопустим. Если набор данных для атрибута не удовлетворяет определенные требования, такие как корректное ключевое использование для подписания данных, это может произойти.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorNameAlreadyRegisteredkSecTransformErrorNameAlreadyRegisteredПользовательское преобразование определенного имени было уже зарегистрировано.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorUnsupportedAttributekSecTransformErrorUnsupportedAttributeПроизошло неправомерное действие, такое как установка атрибута «только для чтения».
Доступный в OS X v10.7 и позже.
-
kSecTransformOperationNotSupportedOnGroupkSecTransformOperationNotSupportedOnGroupНеправомерное действие на группе преобразовывает, такие как попытка вызвать SecTransformSetAttribute, произошел.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorMissingParameterkSecTransformErrorMissingParameterПреобразование пропускает требуемый атрибут.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorInvalidConnectionkSecTransformErrorInvalidConnectionSecTransformConnectTransforms вызвали с преобразованиями в различных группах.
Доступный в OS X v10.7 и позже.
-
kSecTransformTransformIsExecutingkSecTransformTransformIsExecutingНедопустимую работу вызвали на Преобразовании, в то время как она выполнялась. См. документацию упорядочивания в области обсуждения SecTransformExecute API
Доступный в OS X v10.7 и позже.
-
kSecTransformInvalidOverridekSecTransformInvalidOverrideНедопустимое переопределение было дано пользовательскому преобразованию
Доступный в OS X v10.7 и позже.
-
kSecTransformTransformIsNotRegisteredkSecTransformTransformIsNotRegisteredПользовательское преобразование попросили быть созданным, но не было зарегистрировано преобразование.
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorAbortInProgresskSecTransformErrorAbortInProgressАтрибут аварийного прекращения работы был установлен, и преобразование находится в процессе закрытия
Доступный в OS X v10.7 и позже.
-
kSecTransformErrorAbortedkSecTransformErrorAbortedПреобразование было прервано.
Доступный в OS X v10.7 и позже.
-
kSecTransformInvalidArgumentkSecTransformInvalidArgumentНедействительный аргумент был дан Преобразованию API
Доступный в OS X v10.7 и позже.
-
