ErrorTypeTests.swift 98 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085
  1. //
  2. // ErrorTypeTests.swift
  3. // KeychainAccessTests
  4. //
  5. // Created by kishikawa katsumi on 10/12/15.
  6. // Copyright © 2015 kishikawa katsumi. All rights reserved.
  7. //
  8. import XCTest
  9. import KeychainAccess
  10. class ErrorTypeTests: XCTestCase {
  11. override func setUp() {
  12. super.setUp()
  13. }
  14. override func tearDown() {
  15. super.tearDown()
  16. }
  17. func testErrorType() {
  18. do {
  19. let status = Status(rawValue: errSecSuccess)
  20. XCTAssertEqual(status, .Success)
  21. XCTAssertEqual(status?.description, "No error.")
  22. }
  23. do {
  24. let status = Status(rawValue: errSecUnimplemented)
  25. XCTAssertEqual(status, .Unimplemented)
  26. XCTAssertEqual(status?.description, "Function or operation not implemented.")
  27. }
  28. #if os(OSX)
  29. do {
  30. let status = Status(rawValue: errSecDskFull)
  31. XCTAssertEqual(status, .DiskFull)
  32. XCTAssertEqual(status?.description, "The disk is full.")
  33. }
  34. #endif
  35. do {
  36. let status = Status(rawValue: errSecIO)
  37. XCTAssertEqual(status, .IO)
  38. XCTAssertEqual(status?.description, "I/O error (bummers)")
  39. }
  40. #if os(iOS)
  41. do {
  42. let status = Status(rawValue: errSecOpWr)
  43. XCTAssertEqual(status, .OpWr)
  44. XCTAssertEqual(status?.description, "file already open with with write permission")
  45. }
  46. #endif
  47. do {
  48. let status = Status(rawValue: errSecParam)
  49. XCTAssertEqual(status, .Param)
  50. XCTAssertEqual(status?.description, "One or more parameters passed to a function were not valid.")
  51. }
  52. #if os(OSX)
  53. do {
  54. let status = Status(rawValue: errSecWrPerm)
  55. XCTAssertEqual(status, .WrPerm)
  56. XCTAssertEqual(status?.description, "write permissions error")
  57. }
  58. #endif
  59. do {
  60. let status = Status(rawValue: errSecAllocate)
  61. XCTAssertEqual(status, .Allocate)
  62. XCTAssertEqual(status?.description, "Failed to allocate memory.")
  63. }
  64. do {
  65. let status = Status(rawValue: errSecUserCanceled)
  66. XCTAssertEqual(status, .UserCanceled)
  67. XCTAssertEqual(status?.description, "User canceled the operation.")
  68. }
  69. do {
  70. let status = Status(rawValue: errSecBadReq)
  71. XCTAssertEqual(status, .BadReq)
  72. XCTAssertEqual(status?.description, "Bad parameter or invalid state for operation.")
  73. }
  74. do {
  75. let status = Status(rawValue: errSecInternalComponent)
  76. XCTAssertEqual(status, .InternalComponent)
  77. XCTAssertEqual(status?.description, "")
  78. }
  79. do {
  80. let status = Status(rawValue: errSecNotAvailable)
  81. XCTAssertEqual(status, .NotAvailable)
  82. XCTAssertEqual(status?.description, "No keychain is available. You may need to restart your computer.")
  83. }
  84. #if os(OSX)
  85. do {
  86. let status = Status(rawValue: errSecReadOnly)
  87. XCTAssertEqual(status, .ReadOnly)
  88. XCTAssertEqual(status?.description, "This keychain cannot be modified.")
  89. }
  90. #endif
  91. do {
  92. let status = Status(rawValue: errSecAuthFailed)
  93. XCTAssertEqual(status, .AuthFailed)
  94. XCTAssertEqual(status?.description, "The user name or passphrase you entered is not correct.")
  95. }
  96. #if os(OSX)
  97. do {
  98. let status = Status(rawValue: errSecNoSuchKeychain)
  99. XCTAssertEqual(status, .NoSuchKeychain)
  100. XCTAssertEqual(status?.description, "The specified keychain could not be found.")
  101. }
  102. do {
  103. let status = Status(rawValue: errSecInvalidKeychain)
  104. XCTAssertEqual(status, .InvalidKeychain)
  105. XCTAssertEqual(status?.description, "The specified keychain is not a valid keychain file.")
  106. }
  107. do {
  108. let status = Status(rawValue: errSecDuplicateKeychain)
  109. XCTAssertEqual(status, .DuplicateKeychain)
  110. XCTAssertEqual(status?.description, "A keychain with the same name already exists.")
  111. }
  112. do {
  113. let status = Status(rawValue: errSecDuplicateCallback)
  114. XCTAssertEqual(status, .DuplicateCallback)
  115. XCTAssertEqual(status?.description, "The specified callback function is already installed.")
  116. }
  117. do {
  118. let status = Status(rawValue: errSecInvalidCallback)
  119. XCTAssertEqual(status, .InvalidCallback)
  120. XCTAssertEqual(status?.description, "The specified callback function is not valid.")
  121. }
  122. #endif
  123. do {
  124. let status = Status(rawValue: errSecDuplicateItem)
  125. XCTAssertEqual(status, .DuplicateItem)
  126. XCTAssertEqual(status?.description, "The specified item already exists in the keychain.")
  127. }
  128. do {
  129. let status = Status(rawValue: errSecItemNotFound)
  130. XCTAssertEqual(status, .ItemNotFound)
  131. XCTAssertEqual(status?.description, "The specified item could not be found in the keychain.")
  132. }
  133. #if os(OSX)
  134. do {
  135. let status = Status(rawValue: errSecBufferTooSmall)
  136. XCTAssertEqual(status, .BufferTooSmall)
  137. XCTAssertEqual(status?.description, "There is not enough memory available to use the specified item.")
  138. }
  139. do {
  140. let status = Status(rawValue: errSecDataTooLarge)
  141. XCTAssertEqual(status, .DataTooLarge)
  142. XCTAssertEqual(status?.description, "This item contains information which is too large or in a format that cannot be displayed.")
  143. }
  144. do {
  145. let status = Status(rawValue: errSecNoSuchAttr)
  146. XCTAssertEqual(status, .NoSuchAttr)
  147. XCTAssertEqual(status?.description, "The specified attribute does not exist.")
  148. }
  149. do {
  150. let status = Status(rawValue: errSecInvalidItemRef)
  151. XCTAssertEqual(status, .InvalidItemRef)
  152. XCTAssertEqual(status?.description, "The specified item is no longer valid. It may have been deleted from the keychain.")
  153. }
  154. do {
  155. let status = Status(rawValue: errSecInvalidSearchRef)
  156. XCTAssertEqual(status, .InvalidSearchRef)
  157. XCTAssertEqual(status?.description, "Unable to search the current keychain.")
  158. }
  159. do {
  160. let status = Status(rawValue: errSecNoSuchClass)
  161. XCTAssertEqual(status, .NoSuchClass)
  162. XCTAssertEqual(status?.description, "The specified item does not appear to be a valid keychain item.")
  163. }
  164. do {
  165. let status = Status(rawValue: errSecNoDefaultKeychain)
  166. XCTAssertEqual(status, .NoDefaultKeychain)
  167. XCTAssertEqual(status?.description, "A default keychain could not be found.")
  168. }
  169. #endif
  170. do {
  171. let status = Status(rawValue: errSecInteractionNotAllowed)
  172. XCTAssertEqual(status, .InteractionNotAllowed)
  173. XCTAssertEqual(status?.description, "User interaction is not allowed.")
  174. }
  175. #if os(OSX)
  176. do {
  177. let status = Status(rawValue: errSecReadOnlyAttr)
  178. XCTAssertEqual(status, .ReadOnlyAttr)
  179. XCTAssertEqual(status?.description, "The specified attribute could not be modified.")
  180. }
  181. do {
  182. let status = Status(rawValue: errSecWrongSecVersion)
  183. XCTAssertEqual(status, .WrongSecVersion)
  184. XCTAssertEqual(status?.description, "This keychain was created by a different version of the system software and cannot be opened.")
  185. }
  186. do {
  187. let status = Status(rawValue: errSecKeySizeNotAllowed)
  188. XCTAssertEqual(status, .KeySizeNotAllowed)
  189. XCTAssertEqual(status?.description, "This item specifies a key size which is too large.")
  190. }
  191. do {
  192. let status = Status(rawValue: errSecNoStorageModule)
  193. XCTAssertEqual(status, .NoStorageModule)
  194. XCTAssertEqual(status?.description, "A required component (data storage module) could not be loaded. You may need to restart your computer.")
  195. }
  196. do {
  197. let status = Status(rawValue: errSecNoCertificateModule)
  198. XCTAssertEqual(status, .NoCertificateModule)
  199. XCTAssertEqual(status?.description, "A required component (certificate module) could not be loaded. You may need to restart your computer.")
  200. }
  201. do {
  202. let status = Status(rawValue: errSecNoPolicyModule)
  203. XCTAssertEqual(status, .NoPolicyModule)
  204. XCTAssertEqual(status?.description, "A required component (policy module) could not be loaded. You may need to restart your computer.")
  205. }
  206. do {
  207. let status = Status(rawValue: errSecInteractionRequired)
  208. XCTAssertEqual(status, .InteractionRequired)
  209. XCTAssertEqual(status?.description, "User interaction is required, but is currently not allowed.")
  210. }
  211. do {
  212. let status = Status(rawValue: errSecDataNotAvailable)
  213. XCTAssertEqual(status, .DataNotAvailable)
  214. XCTAssertEqual(status?.description, "The contents of this item cannot be retrieved.")
  215. }
  216. do {
  217. let status = Status(rawValue: errSecDataNotModifiable)
  218. XCTAssertEqual(status, .DataNotModifiable)
  219. XCTAssertEqual(status?.description, "The contents of this item cannot be modified.")
  220. }
  221. do {
  222. let status = Status(rawValue: errSecCreateChainFailed)
  223. XCTAssertEqual(status, .CreateChainFailed)
  224. XCTAssertEqual(status?.description, "One or more certificates required to validate this certificate cannot be found.")
  225. }
  226. do {
  227. let status = Status(rawValue: errSecInvalidPrefsDomain)
  228. XCTAssertEqual(status, .InvalidPrefsDomain)
  229. XCTAssertEqual(status?.description, "The specified preferences domain is not valid.")
  230. }
  231. do {
  232. let status = Status(rawValue: errSecInDarkWake)
  233. XCTAssertEqual(status, .InDarkWake)
  234. XCTAssertEqual(status?.description, "In dark wake, no UI possible")
  235. }
  236. do {
  237. let status = Status(rawValue: errSecACLNotSimple)
  238. XCTAssertEqual(status, .ACLNotSimple)
  239. XCTAssertEqual(status?.description, "The specified access control list is not in standard (simple) form.")
  240. }
  241. do {
  242. let status = Status(rawValue: errSecPolicyNotFound)
  243. XCTAssertEqual(status, .PolicyNotFound)
  244. XCTAssertEqual(status?.description, "The specified policy cannot be found.")
  245. }
  246. do {
  247. let status = Status(rawValue: errSecInvalidTrustSetting)
  248. XCTAssertEqual(status, .InvalidTrustSetting)
  249. XCTAssertEqual(status?.description, "The specified trust setting is invalid.")
  250. }
  251. do {
  252. let status = Status(rawValue: errSecNoAccessForItem)
  253. XCTAssertEqual(status, .NoAccessForItem)
  254. XCTAssertEqual(status?.description, "The specified item has no access control.")
  255. }
  256. do {
  257. let status = Status(rawValue: errSecInvalidOwnerEdit)
  258. XCTAssertEqual(status, .InvalidOwnerEdit)
  259. XCTAssertEqual(status?.description, "Invalid attempt to change the owner of this item.")
  260. }
  261. do {
  262. let status = Status(rawValue: errSecTrustNotAvailable)
  263. XCTAssertEqual(status, .TrustNotAvailable)
  264. XCTAssertEqual(status?.description, "No trust results are available.")
  265. }
  266. do {
  267. let status = Status(rawValue: errSecUnsupportedFormat)
  268. XCTAssertEqual(status, .UnsupportedFormat)
  269. XCTAssertEqual(status?.description, "Import/Export format unsupported.")
  270. }
  271. do {
  272. let status = Status(rawValue: errSecUnknownFormat)
  273. XCTAssertEqual(status, .UnknownFormat)
  274. XCTAssertEqual(status?.description, "Unknown format in import.")
  275. }
  276. do {
  277. let status = Status(rawValue: errSecKeyIsSensitive)
  278. XCTAssertEqual(status, .KeyIsSensitive)
  279. XCTAssertEqual(status?.description, "Key material must be wrapped for export.")
  280. }
  281. do {
  282. let status = Status(rawValue: errSecMultiplePrivKeys)
  283. XCTAssertEqual(status, .MultiplePrivKeys)
  284. XCTAssertEqual(status?.description, "An attempt was made to import multiple private keys.")
  285. }
  286. do {
  287. let status = Status(rawValue: errSecPassphraseRequired)
  288. XCTAssertEqual(status, .PassphraseRequired)
  289. XCTAssertEqual(status?.description, "Passphrase is required for import/export.")
  290. }
  291. do {
  292. let status = Status(rawValue: errSecInvalidPasswordRef)
  293. XCTAssertEqual(status, .InvalidPasswordRef)
  294. XCTAssertEqual(status?.description, "The password reference was invalid.")
  295. }
  296. do {
  297. let status = Status(rawValue: errSecInvalidTrustSettings)
  298. XCTAssertEqual(status, .InvalidTrustSettings)
  299. XCTAssertEqual(status?.description, "The Trust Settings Record was corrupted.")
  300. }
  301. do {
  302. let status = Status(rawValue: errSecNoTrustSettings)
  303. XCTAssertEqual(status, .NoTrustSettings)
  304. XCTAssertEqual(status?.description, "No Trust Settings were found.")
  305. }
  306. do {
  307. let status = Status(rawValue: errSecPkcs12VerifyFailure)
  308. XCTAssertEqual(status, .Pkcs12VerifyFailure)
  309. XCTAssertEqual(status?.description, "MAC verification failed during PKCS12 import (wrong password?)")
  310. }
  311. do {
  312. let errSecInvalidCertificate: OSStatus = -26265
  313. let status = Status(rawValue: errSecInvalidCertificate)
  314. XCTAssertEqual(status, .InvalidCertificate)
  315. XCTAssertEqual(status?.description, "This certificate could not be decoded.")
  316. }
  317. do {
  318. let status = Status(rawValue: errSecNotSigner)
  319. XCTAssertEqual(status, .NotSigner)
  320. XCTAssertEqual(status?.description, "A certificate was not signed by its proposed parent.")
  321. }
  322. do {
  323. let errSecPolicyDenied: OSStatus = -26270
  324. let status = Status(rawValue: errSecPolicyDenied)
  325. XCTAssertEqual(status, .PolicyDenied)
  326. XCTAssertEqual(status?.description, "The certificate chain was not trusted due to a policy not accepting it.")
  327. }
  328. do {
  329. let errSecInvalidKey: OSStatus = -26274
  330. let status = Status(rawValue: errSecInvalidKey)
  331. XCTAssertEqual(status, .InvalidKey)
  332. XCTAssertEqual(status?.description, "The provided key material was not valid.")
  333. }
  334. #endif
  335. do {
  336. let status = Status(rawValue: errSecDecode)
  337. XCTAssertEqual(status, .Decode)
  338. XCTAssertEqual(status?.description, "Unable to decode the provided data.")
  339. }
  340. do {
  341. let errSecInternal: OSStatus = -26276
  342. let status = Status(rawValue: errSecInternal)
  343. XCTAssertEqual(status, .Internal)
  344. XCTAssertEqual(status?.description, "An internal error occured in the Security framework.")
  345. }
  346. #if os(OSX)
  347. do {
  348. let status = Status(rawValue: errSecServiceNotAvailable)
  349. XCTAssertEqual(status, .ServiceNotAvailable)
  350. XCTAssertEqual(status?.description, "The required service is not available.")
  351. }
  352. do {
  353. let errSecUnsupportedAlgorithm: OSStatus = -26268
  354. let status = Status(rawValue: errSecUnsupportedAlgorithm)
  355. XCTAssertEqual(status, .UnsupportedAlgorithm)
  356. XCTAssertEqual(status?.description, "An unsupported algorithm was encountered.")
  357. }
  358. do {
  359. let errSecUnsupportedOperation: OSStatus = -26271
  360. let status = Status(rawValue: errSecUnsupportedOperation)
  361. XCTAssertEqual(status, .UnsupportedOperation)
  362. XCTAssertEqual(status?.description, "The operation you requested is not supported by this key.")
  363. }
  364. do {
  365. let errSecUnsupportedPadding: OSStatus = -26273
  366. let status = Status(rawValue: errSecUnsupportedPadding)
  367. XCTAssertEqual(status, .UnsupportedPadding)
  368. XCTAssertEqual(status?.description, "The padding you requested is not supported.")
  369. }
  370. do {
  371. let errSecItemInvalidKey: OSStatus = -34000
  372. let status = Status(rawValue: errSecItemInvalidKey)
  373. XCTAssertEqual(status, .ItemInvalidKey)
  374. XCTAssertEqual(status?.description, "A string key in dictionary is not one of the supported keys.")
  375. }
  376. do {
  377. let errSecItemInvalidKeyType: OSStatus = -34001
  378. let status = Status(rawValue: errSecItemInvalidKeyType)
  379. XCTAssertEqual(status, .ItemInvalidKeyType)
  380. XCTAssertEqual(status?.description, "A key in a dictionary is neither a CFStringRef nor a CFNumberRef.")
  381. }
  382. do {
  383. let errSecItemInvalidValue: OSStatus = -34002
  384. let status = Status(rawValue: errSecItemInvalidValue)
  385. XCTAssertEqual(status, .ItemInvalidValue)
  386. XCTAssertEqual(status?.description, "A value in a dictionary is an invalid (or unsupported) CF type.")
  387. }
  388. do {
  389. let errSecItemClassMissing: OSStatus = -34003
  390. let status = Status(rawValue: errSecItemClassMissing)
  391. XCTAssertEqual(status, .ItemClassMissing)
  392. XCTAssertEqual(status?.description, "No kSecItemClass key was specified in a dictionary.")
  393. }
  394. do {
  395. let errSecItemMatchUnsupported: OSStatus = -34004
  396. let status = Status(rawValue: errSecItemMatchUnsupported)
  397. XCTAssertEqual(status, .ItemMatchUnsupported)
  398. XCTAssertEqual(status?.description, "The caller passed one or more kSecMatch keys to a function which does not support matches.")
  399. }
  400. do {
  401. let errSecUseItemListUnsupported: OSStatus = -34005
  402. let status = Status(rawValue: errSecUseItemListUnsupported)
  403. XCTAssertEqual(status, .UseItemListUnsupported)
  404. XCTAssertEqual(status?.description, "The caller passed in a kSecUseItemList key to a function which does not support it.")
  405. }
  406. do {
  407. let errSecUseKeychainUnsupported: OSStatus = -34006
  408. let status = Status(rawValue: errSecUseKeychainUnsupported)
  409. XCTAssertEqual(status, .UseKeychainUnsupported)
  410. XCTAssertEqual(status?.description, "The caller passed in a kSecUseKeychain key to a function which does not support it.")
  411. }
  412. do {
  413. let errSecUseKeychainListUnsupported: OSStatus = -34007
  414. let status = Status(rawValue: errSecUseKeychainListUnsupported)
  415. XCTAssertEqual(status, .UseKeychainListUnsupported)
  416. XCTAssertEqual(status?.description, "The caller passed in a kSecUseKeychainList key to a function which does not support it.")
  417. }
  418. do {
  419. let errSecReturnDataUnsupported: OSStatus = -34008
  420. let status = Status(rawValue: errSecReturnDataUnsupported)
  421. XCTAssertEqual(status, .ReturnDataUnsupported)
  422. XCTAssertEqual(status?.description, "The caller passed in a kSecReturnData key to a function which does not support it.")
  423. }
  424. do {
  425. let errSecReturnAttributesUnsupported: OSStatus = -34009
  426. let status = Status(rawValue: errSecReturnAttributesUnsupported)
  427. XCTAssertEqual(status, .ReturnAttributesUnsupported)
  428. XCTAssertEqual(status?.description, "The caller passed in a kSecReturnAttributes key to a function which does not support it.")
  429. }
  430. do {
  431. let errSecReturnRefUnsupported: OSStatus = -34010
  432. let status = Status(rawValue: errSecReturnRefUnsupported)
  433. XCTAssertEqual(status, .ReturnRefUnsupported)
  434. XCTAssertEqual(status?.description, "The caller passed in a kSecReturnRef key to a function which does not support it.")
  435. }
  436. do {
  437. let errSecReturnPersitentRefUnsupported: OSStatus = -34011
  438. let status = Status(rawValue: errSecReturnPersitentRefUnsupported)
  439. XCTAssertEqual(status, .ReturnPersitentRefUnsupported)
  440. XCTAssertEqual(status?.description, "The caller passed in a kSecReturnPersistentRef key to a function which does not support it.")
  441. }
  442. do {
  443. let errSecValueRefUnsupported: OSStatus = -34012
  444. let status = Status(rawValue: errSecValueRefUnsupported)
  445. XCTAssertEqual(status, .ValueRefUnsupported)
  446. XCTAssertEqual(status?.description, "The caller passed in a kSecValueRef key to a function which does not support it.")
  447. }
  448. do {
  449. let errSecValuePersistentRefUnsupported: OSStatus = -34013
  450. let status = Status(rawValue: errSecValuePersistentRefUnsupported)
  451. XCTAssertEqual(status, .ValuePersistentRefUnsupported)
  452. XCTAssertEqual(status?.description, "The caller passed in a kSecValuePersistentRef key to a function which does not support it.")
  453. }
  454. do {
  455. let errSecReturnMissingPointer: OSStatus = -34014
  456. let status = Status(rawValue: errSecReturnMissingPointer)
  457. XCTAssertEqual(status, .ReturnMissingPointer)
  458. XCTAssertEqual(status?.description, "The caller passed asked for something to be returned but did not pass in a result pointer.")
  459. }
  460. do {
  461. let errSecMatchLimitUnsupported: OSStatus = -34015
  462. let status = Status(rawValue: errSecMatchLimitUnsupported)
  463. XCTAssertEqual(status, .MatchLimitUnsupported)
  464. XCTAssertEqual(status?.description, "The caller passed in a kSecMatchLimit key to a call which does not support limits.")
  465. }
  466. do {
  467. let errSecItemIllegalQuery: OSStatus = -34016
  468. let status = Status(rawValue: errSecItemIllegalQuery)
  469. XCTAssertEqual(status, .ItemIllegalQuery)
  470. XCTAssertEqual(status?.description, "The caller passed in a query which contained too many keys.")
  471. }
  472. do {
  473. let errSecWaitForCallback: OSStatus = -34017
  474. let status = Status(rawValue: errSecWaitForCallback)
  475. XCTAssertEqual(status, .WaitForCallback)
  476. XCTAssertEqual(status?.description, "This operation is incomplete, until the callback is invoked (not an error).")
  477. }
  478. do {
  479. let errSecMissingEntitlement: OSStatus = -34018
  480. let status = Status(rawValue: errSecMissingEntitlement)
  481. XCTAssertEqual(status, .MissingEntitlement)
  482. XCTAssertEqual(status?.description, "Internal error when a required entitlement isn't present, client has neither application-identifier nor keychain-access-groups entitlements.")
  483. }
  484. do {
  485. let errSecUpgradePending: OSStatus = -34019
  486. let status = Status(rawValue: errSecUpgradePending)
  487. XCTAssertEqual(status, .UpgradePending)
  488. XCTAssertEqual(status?.description, "Error returned if keychain database needs a schema migration but the device is locked, clients should wait for a device unlock notification and retry the command.")
  489. }
  490. do {
  491. let errSecMPSignatureInvalid: OSStatus = -25327
  492. let status = Status(rawValue: errSecMPSignatureInvalid)
  493. XCTAssertEqual(status, .MPSignatureInvalid)
  494. XCTAssertEqual(status?.description, "Signature invalid on MP message")
  495. }
  496. do {
  497. let errSecOTRTooOld: OSStatus = -25328
  498. let status = Status(rawValue: errSecOTRTooOld)
  499. XCTAssertEqual(status, .OTRTooOld)
  500. XCTAssertEqual(status?.description, "Message is too old to use")
  501. }
  502. do {
  503. let errSecOTRIDTooNew: OSStatus = -25329
  504. let status = Status(rawValue: errSecOTRIDTooNew)
  505. XCTAssertEqual(status, .OTRIDTooNew)
  506. XCTAssertEqual(status?.description, "Key ID is too new to use! Message from the future?")
  507. }
  508. do {
  509. let status = Status(rawValue: errSecInsufficientClientID)
  510. XCTAssertEqual(status, .InsufficientClientID)
  511. XCTAssertEqual(status?.description, "The client ID is not correct.")
  512. }
  513. do {
  514. let status = Status(rawValue: errSecDeviceReset)
  515. XCTAssertEqual(status, .DeviceReset)
  516. XCTAssertEqual(status?.description, "A device reset has occurred.")
  517. }
  518. do {
  519. let status = Status(rawValue: errSecDeviceFailed)
  520. XCTAssertEqual(status, .DeviceFailed)
  521. XCTAssertEqual(status?.description, "A device failure has occurred.")
  522. }
  523. do {
  524. let status = Status(rawValue: errSecAppleAddAppACLSubject)
  525. XCTAssertEqual(status, .AppleAddAppACLSubject)
  526. XCTAssertEqual(status?.description, "Adding an application ACL subject failed.")
  527. }
  528. do {
  529. let status = Status(rawValue: errSecApplePublicKeyIncomplete)
  530. XCTAssertEqual(status, .ApplePublicKeyIncomplete)
  531. XCTAssertEqual(status?.description, "The public key is incomplete.")
  532. }
  533. do {
  534. let status = Status(rawValue: errSecAppleSignatureMismatch)
  535. XCTAssertEqual(status, .AppleSignatureMismatch)
  536. XCTAssertEqual(status?.description, "A signature mismatch has occurred.")
  537. }
  538. do {
  539. let status = Status(rawValue: errSecAppleInvalidKeyStartDate)
  540. XCTAssertEqual(status, .AppleInvalidKeyStartDate)
  541. XCTAssertEqual(status?.description, "The specified key has an invalid start date.")
  542. }
  543. do {
  544. let status = Status(rawValue: errSecAppleInvalidKeyEndDate)
  545. XCTAssertEqual(status, .AppleInvalidKeyEndDate)
  546. XCTAssertEqual(status?.description, "The specified key has an invalid end date.")
  547. }
  548. do {
  549. let status = Status(rawValue: errSecConversionError)
  550. XCTAssertEqual(status, .ConversionError)
  551. XCTAssertEqual(status?.description, "A conversion error has occurred.")
  552. }
  553. do {
  554. let status = Status(rawValue: errSecAppleSSLv2Rollback)
  555. XCTAssertEqual(status, .AppleSSLv2Rollback)
  556. XCTAssertEqual(status?.description, "A SSLv2 rollback error has occurred.")
  557. }
  558. do {
  559. let status = Status(rawValue: errSecDiskFull)
  560. XCTAssertEqual(status, .DiskFull)
  561. XCTAssertEqual(status?.description, "The disk is full.")
  562. }
  563. do {
  564. let status = Status(rawValue: errSecQuotaExceeded)
  565. XCTAssertEqual(status, .QuotaExceeded)
  566. XCTAssertEqual(status?.description, "The quota was exceeded.")
  567. }
  568. do {
  569. let status = Status(rawValue: errSecFileTooBig)
  570. XCTAssertEqual(status, .FileTooBig)
  571. XCTAssertEqual(status?.description, "The file is too big.")
  572. }
  573. do {
  574. let status = Status(rawValue: errSecInvalidDatabaseBlob)
  575. XCTAssertEqual(status, .InvalidDatabaseBlob)
  576. XCTAssertEqual(status?.description, "The specified database has an invalid blob.")
  577. }
  578. do {
  579. let status = Status(rawValue: errSecInvalidKeyBlob)
  580. XCTAssertEqual(status, .InvalidKeyBlob)
  581. XCTAssertEqual(status?.description, "The specified database has an invalid key blob.")
  582. }
  583. do {
  584. let status = Status(rawValue: errSecIncompatibleDatabaseBlob)
  585. XCTAssertEqual(status, .IncompatibleDatabaseBlob)
  586. XCTAssertEqual(status?.description, "The specified database has an incompatible blob.")
  587. }
  588. do {
  589. let status = Status(rawValue: errSecIncompatibleKeyBlob)
  590. XCTAssertEqual(status, .IncompatibleKeyBlob)
  591. XCTAssertEqual(status?.description, "The specified database has an incompatible key blob.")
  592. }
  593. do {
  594. let status = Status(rawValue: errSecHostNameMismatch)
  595. XCTAssertEqual(status, .HostNameMismatch)
  596. XCTAssertEqual(status?.description, "A host name mismatch has occurred.")
  597. }
  598. do {
  599. let status = Status(rawValue: errSecUnknownCriticalExtensionFlag)
  600. XCTAssertEqual(status, .UnknownCriticalExtensionFlag)
  601. XCTAssertEqual(status?.description, "There is an unknown critical extension flag.")
  602. }
  603. do {
  604. let status = Status(rawValue: errSecNoBasicConstraints)
  605. XCTAssertEqual(status, .NoBasicConstraints)
  606. XCTAssertEqual(status?.description, "No basic constraints were found.")
  607. }
  608. do {
  609. let status = Status(rawValue: errSecNoBasicConstraintsCA)
  610. XCTAssertEqual(status, .NoBasicConstraintsCA)
  611. XCTAssertEqual(status?.description, "No basic CA constraints were found.")
  612. }
  613. do {
  614. let status = Status(rawValue: errSecInvalidAuthorityKeyID)
  615. XCTAssertEqual(status, .InvalidAuthorityKeyID)
  616. XCTAssertEqual(status?.description, "The authority key ID is not valid.")
  617. }
  618. do {
  619. let status = Status(rawValue: errSecInvalidSubjectKeyID)
  620. XCTAssertEqual(status, .InvalidSubjectKeyID)
  621. XCTAssertEqual(status?.description, "The subject key ID is not valid.")
  622. }
  623. do {
  624. let status = Status(rawValue: errSecInvalidKeyUsageForPolicy)
  625. XCTAssertEqual(status, .InvalidKeyUsageForPolicy)
  626. XCTAssertEqual(status?.description, "The key usage is not valid for the specified policy.")
  627. }
  628. do {
  629. let status = Status(rawValue: errSecInvalidExtendedKeyUsage)
  630. XCTAssertEqual(status, .InvalidExtendedKeyUsage)
  631. XCTAssertEqual(status?.description, "The extended key usage is not valid.")
  632. }
  633. do {
  634. let status = Status(rawValue: errSecInvalidIDLinkage)
  635. XCTAssertEqual(status, .InvalidIDLinkage)
  636. XCTAssertEqual(status?.description, "The ID linkage is not valid.")
  637. }
  638. do {
  639. let status = Status(rawValue: errSecPathLengthConstraintExceeded)
  640. XCTAssertEqual(status, .PathLengthConstraintExceeded)
  641. XCTAssertEqual(status?.description, "The path length constraint was exceeded.")
  642. }
  643. do {
  644. let status = Status(rawValue: errSecInvalidRoot)
  645. XCTAssertEqual(status, .InvalidRoot)
  646. XCTAssertEqual(status?.description, "The root or anchor certificate is not valid.")
  647. }
  648. do {
  649. let status = Status(rawValue: errSecCRLExpired)
  650. XCTAssertEqual(status, .CRLExpired)
  651. XCTAssertEqual(status?.description, "The CRL has expired.")
  652. }
  653. do {
  654. let status = Status(rawValue: errSecCRLNotValidYet)
  655. XCTAssertEqual(status, .CRLNotValidYet)
  656. XCTAssertEqual(status?.description, "The CRL is not yet valid.")
  657. }
  658. do {
  659. let status = Status(rawValue: errSecCRLNotFound)
  660. XCTAssertEqual(status, .CRLNotFound)
  661. XCTAssertEqual(status?.description, "The CRL was not found.")
  662. }
  663. do {
  664. let status = Status(rawValue: errSecCRLServerDown)
  665. XCTAssertEqual(status, .CRLServerDown)
  666. XCTAssertEqual(status?.description, "The CRL server is down.")
  667. }
  668. do {
  669. let status = Status(rawValue: errSecCRLBadURI)
  670. XCTAssertEqual(status, .CRLBadURI)
  671. XCTAssertEqual(status?.description, "The CRL has a bad Uniform Resource Identifier.")
  672. }
  673. do {
  674. let status = Status(rawValue: errSecUnknownCertExtension)
  675. XCTAssertEqual(status, .UnknownCertExtension)
  676. XCTAssertEqual(status?.description, "An unknown certificate extension was encountered.")
  677. }
  678. do {
  679. let status = Status(rawValue: errSecUnknownCRLExtension)
  680. XCTAssertEqual(status, .UnknownCRLExtension)
  681. XCTAssertEqual(status?.description, "An unknown CRL extension was encountered.")
  682. }
  683. do {
  684. let status = Status(rawValue: errSecCRLNotTrusted)
  685. XCTAssertEqual(status, .CRLNotTrusted)
  686. XCTAssertEqual(status?.description, "The CRL is not trusted.")
  687. }
  688. do {
  689. let status = Status(rawValue: errSecCRLPolicyFailed)
  690. XCTAssertEqual(status, .CRLPolicyFailed)
  691. XCTAssertEqual(status?.description, "The CRL policy failed.")
  692. }
  693. do {
  694. let status = Status(rawValue: errSecIDPFailure)
  695. XCTAssertEqual(status, .IDPFailure)
  696. XCTAssertEqual(status?.description, "The issuing distribution point was not valid.")
  697. }
  698. do {
  699. let status = Status(rawValue: errSecSMIMEEmailAddressesNotFound)
  700. XCTAssertEqual(status, .SMIMEEmailAddressesNotFound)
  701. XCTAssertEqual(status?.description, "An email address mismatch was encountered.")
  702. }
  703. do {
  704. let status = Status(rawValue: errSecSMIMEBadExtendedKeyUsage)
  705. XCTAssertEqual(status, .SMIMEBadExtendedKeyUsage)
  706. XCTAssertEqual(status?.description, "The appropriate extended key usage for SMIME was not found.")
  707. }
  708. do {
  709. let status = Status(rawValue: errSecSMIMEBadKeyUsage)
  710. XCTAssertEqual(status, .SMIMEBadKeyUsage)
  711. XCTAssertEqual(status?.description, "The key usage is not compatible with SMIME.")
  712. }
  713. do {
  714. let status = Status(rawValue: errSecSMIMEKeyUsageNotCritical)
  715. XCTAssertEqual(status, .SMIMEKeyUsageNotCritical)
  716. XCTAssertEqual(status?.description, "The key usage extension is not marked as critical.")
  717. }
  718. do {
  719. let status = Status(rawValue: errSecSMIMENoEmailAddress)
  720. XCTAssertEqual(status, .SMIMENoEmailAddress)
  721. XCTAssertEqual(status?.description, "No email address was found in the certificate.")
  722. }
  723. do {
  724. let status = Status(rawValue: errSecSMIMESubjAltNameNotCritical)
  725. XCTAssertEqual(status, .SMIMESubjAltNameNotCritical)
  726. XCTAssertEqual(status?.description, "The subject alternative name extension is not marked as critical.")
  727. }
  728. do {
  729. let status = Status(rawValue: errSecSSLBadExtendedKeyUsage)
  730. XCTAssertEqual(status, .SSLBadExtendedKeyUsage)
  731. XCTAssertEqual(status?.description, "The appropriate extended key usage for SSL was not found.")
  732. }
  733. do {
  734. let status = Status(rawValue: errSecOCSPBadResponse)
  735. XCTAssertEqual(status, .OCSPBadResponse)
  736. XCTAssertEqual(status?.description, "The OCSP response was incorrect or could not be parsed.")
  737. }
  738. do {
  739. let status = Status(rawValue: errSecOCSPBadRequest)
  740. XCTAssertEqual(status, .OCSPBadRequest)
  741. XCTAssertEqual(status?.description, "The OCSP request was incorrect or could not be parsed.")
  742. }
  743. do {
  744. let status = Status(rawValue: errSecOCSPUnavailable)
  745. XCTAssertEqual(status, .OCSPUnavailable)
  746. XCTAssertEqual(status?.description, "OCSP service is unavailable.")
  747. }
  748. do {
  749. let status = Status(rawValue: errSecOCSPStatusUnrecognized)
  750. XCTAssertEqual(status, .OCSPStatusUnrecognized)
  751. XCTAssertEqual(status?.description, "The OCSP server did not recognize this certificate.")
  752. }
  753. do {
  754. let status = Status(rawValue: errSecEndOfData)
  755. XCTAssertEqual(status, .EndOfData)
  756. XCTAssertEqual(status?.description, "An end-of-data was detected.")
  757. }
  758. do {
  759. let status = Status(rawValue: errSecIncompleteCertRevocationCheck)
  760. XCTAssertEqual(status, .IncompleteCertRevocationCheck)
  761. XCTAssertEqual(status?.description, "An incomplete certificate revocation check occurred.")
  762. }
  763. do {
  764. let status = Status(rawValue: errSecNetworkFailure)
  765. XCTAssertEqual(status, .NetworkFailure)
  766. XCTAssertEqual(status?.description, "A network failure occurred.")
  767. }
  768. do {
  769. let status = Status(rawValue: errSecOCSPNotTrustedToAnchor)
  770. XCTAssertEqual(status, .OCSPNotTrustedToAnchor)
  771. XCTAssertEqual(status?.description, "The OCSP response was not trusted to a root or anchor certificate.")
  772. }
  773. do {
  774. let status = Status(rawValue: errSecRecordModified)
  775. XCTAssertEqual(status, .RecordModified)
  776. XCTAssertEqual(status?.description, "The record was modified.")
  777. }
  778. do {
  779. let status = Status(rawValue: errSecOCSPSignatureError)
  780. XCTAssertEqual(status, .OCSPSignatureError)
  781. XCTAssertEqual(status?.description, "The OCSP response had an invalid signature.")
  782. }
  783. do {
  784. let status = Status(rawValue: errSecOCSPNoSigner)
  785. XCTAssertEqual(status, .OCSPNoSigner)
  786. XCTAssertEqual(status?.description, "The OCSP response had no signer.")
  787. }
  788. do {
  789. let status = Status(rawValue: errSecOCSPResponderMalformedReq)
  790. XCTAssertEqual(status, .OCSPResponderMalformedReq)
  791. XCTAssertEqual(status?.description, "The OCSP responder was given a malformed request.")
  792. }
  793. do {
  794. let status = Status(rawValue: errSecOCSPResponderInternalError)
  795. XCTAssertEqual(status, .OCSPResponderInternalError)
  796. XCTAssertEqual(status?.description, "The OCSP responder encountered an internal error.")
  797. }
  798. do {
  799. let status = Status(rawValue: errSecOCSPResponderTryLater)
  800. XCTAssertEqual(status, .OCSPResponderTryLater)
  801. XCTAssertEqual(status?.description, "The OCSP responder is busy, try again later.")
  802. }
  803. do {
  804. let status = Status(rawValue: errSecOCSPResponderSignatureRequired)
  805. XCTAssertEqual(status, .OCSPResponderSignatureRequired)
  806. XCTAssertEqual(status?.description, "The OCSP responder requires a signature.")
  807. }
  808. do {
  809. let status = Status(rawValue: errSecOCSPResponderUnauthorized)
  810. XCTAssertEqual(status, .OCSPResponderUnauthorized)
  811. XCTAssertEqual(status?.description, "The OCSP responder rejected this request as unauthorized.")
  812. }
  813. do {
  814. let status = Status(rawValue: errSecOCSPResponseNonceMismatch)
  815. XCTAssertEqual(status, .OCSPResponseNonceMismatch)
  816. XCTAssertEqual(status?.description, "The OCSP response nonce did not match the request.")
  817. }
  818. do {
  819. let status = Status(rawValue: errSecCodeSigningBadCertChainLength)
  820. XCTAssertEqual(status, .CodeSigningBadCertChainLength)
  821. XCTAssertEqual(status?.description, "Code signing encountered an incorrect certificate chain length.")
  822. }
  823. do {
  824. let status = Status(rawValue: errSecCodeSigningNoBasicConstraints)
  825. XCTAssertEqual(status, .CodeSigningNoBasicConstraints)
  826. XCTAssertEqual(status?.description, "Code signing found no basic constraints.")
  827. }
  828. do {
  829. let status = Status(rawValue: errSecCodeSigningBadPathLengthConstraint)
  830. XCTAssertEqual(status, .CodeSigningBadPathLengthConstraint)
  831. XCTAssertEqual(status?.description, "Code signing encountered an incorrect path length constraint.")
  832. }
  833. do {
  834. let status = Status(rawValue: errSecCodeSigningNoExtendedKeyUsage)
  835. XCTAssertEqual(status, .CodeSigningNoExtendedKeyUsage)
  836. XCTAssertEqual(status?.description, "Code signing found no extended key usage.")
  837. }
  838. do {
  839. let status = Status(rawValue: errSecCodeSigningDevelopment)
  840. XCTAssertEqual(status, .CodeSigningDevelopment)
  841. XCTAssertEqual(status?.description, "Code signing indicated use of a development-only certificate.")
  842. }
  843. do {
  844. let status = Status(rawValue: errSecResourceSignBadCertChainLength)
  845. XCTAssertEqual(status, .ResourceSignBadCertChainLength)
  846. XCTAssertEqual(status?.description, "Resource signing has encountered an incorrect certificate chain length.")
  847. }
  848. do {
  849. let status = Status(rawValue: errSecResourceSignBadExtKeyUsage)
  850. XCTAssertEqual(status, .ResourceSignBadExtKeyUsage)
  851. XCTAssertEqual(status?.description, "Resource signing has encountered an error in the extended key usage.")
  852. }
  853. do {
  854. let status = Status(rawValue: errSecTrustSettingDeny)
  855. XCTAssertEqual(status, .TrustSettingDeny)
  856. XCTAssertEqual(status?.description, "The trust setting for this policy was set to Deny.")
  857. }
  858. do {
  859. let status = Status(rawValue: errSecInvalidSubjectName)
  860. XCTAssertEqual(status, .InvalidSubjectName)
  861. XCTAssertEqual(status?.description, "An invalid certificate subject name was encountered.")
  862. }
  863. do {
  864. let status = Status(rawValue: errSecUnknownQualifiedCertStatement)
  865. XCTAssertEqual(status, .UnknownQualifiedCertStatement)
  866. XCTAssertEqual(status?.description, "An unknown qualified certificate statement was encountered.")
  867. }
  868. do {
  869. let status = Status(rawValue: errSecMobileMeRequestQueued)
  870. XCTAssertEqual(status, .MobileMeRequestQueued)
  871. XCTAssertEqual(status?.description, "The MobileMe request will be sent during the next connection.")
  872. }
  873. do {
  874. let status = Status(rawValue: errSecMobileMeRequestRedirected)
  875. XCTAssertEqual(status, .MobileMeRequestRedirected)
  876. XCTAssertEqual(status?.description, "The MobileMe request was redirected.")
  877. }
  878. do {
  879. let status = Status(rawValue: errSecMobileMeServerError)
  880. XCTAssertEqual(status, .MobileMeServerError)
  881. XCTAssertEqual(status?.description, "A MobileMe server error occurred.")
  882. }
  883. do {
  884. let status = Status(rawValue: errSecMobileMeServerNotAvailable)
  885. XCTAssertEqual(status, .MobileMeServerNotAvailable)
  886. XCTAssertEqual(status?.description, "The MobileMe server is not available.")
  887. }
  888. do {
  889. let status = Status(rawValue: errSecMobileMeServerAlreadyExists)
  890. XCTAssertEqual(status, .MobileMeServerAlreadyExists)
  891. XCTAssertEqual(status?.description, "The MobileMe server reported that the item already exists.")
  892. }
  893. do {
  894. let status = Status(rawValue: errSecMobileMeServerServiceErr)
  895. XCTAssertEqual(status, .MobileMeServerServiceErr)
  896. XCTAssertEqual(status?.description, "A MobileMe service error has occurred.")
  897. }
  898. do {
  899. let status = Status(rawValue: errSecMobileMeRequestAlreadyPending)
  900. XCTAssertEqual(status, .MobileMeRequestAlreadyPending)
  901. XCTAssertEqual(status?.description, "A MobileMe request is already pending.")
  902. }
  903. do {
  904. let status = Status(rawValue: errSecMobileMeNoRequestPending)
  905. XCTAssertEqual(status, .MobileMeNoRequestPending)
  906. XCTAssertEqual(status?.description, "MobileMe has no request pending.")
  907. }
  908. do {
  909. let status = Status(rawValue: errSecMobileMeCSRVerifyFailure)
  910. XCTAssertEqual(status, .MobileMeCSRVerifyFailure)
  911. XCTAssertEqual(status?.description, "A MobileMe CSR verification failure has occurred.")
  912. }
  913. do {
  914. let status = Status(rawValue: errSecMobileMeFailedConsistencyCheck)
  915. XCTAssertEqual(status, .MobileMeFailedConsistencyCheck)
  916. XCTAssertEqual(status?.description, "MobileMe has found a failed consistency check.")
  917. }
  918. do {
  919. let status = Status(rawValue: errSecNotInitialized)
  920. XCTAssertEqual(status, .NotInitialized)
  921. XCTAssertEqual(status?.description, "A function was called without initializing CSSM.")
  922. }
  923. do {
  924. let status = Status(rawValue: errSecInvalidHandleUsage)
  925. XCTAssertEqual(status, .InvalidHandleUsage)
  926. XCTAssertEqual(status?.description, "The CSSM handle does not match with the service type.")
  927. }
  928. do {
  929. let status = Status(rawValue: errSecPVCReferentNotFound)
  930. XCTAssertEqual(status, .PVCReferentNotFound)
  931. XCTAssertEqual(status?.description, "A reference to the calling module was not found in the list of authorized callers.")
  932. }
  933. do {
  934. let status = Status(rawValue: errSecFunctionIntegrityFail)
  935. XCTAssertEqual(status, .FunctionIntegrityFail)
  936. XCTAssertEqual(status?.description, "A function address was not within the verified module.")
  937. }
  938. do {
  939. let status = Status(rawValue: errSecInternalError)
  940. XCTAssertEqual(status, .InternalError)
  941. XCTAssertEqual(status?.description, "An internal error has occurred.")
  942. }
  943. do {
  944. let status = Status(rawValue: errSecMemoryError)
  945. XCTAssertEqual(status, .MemoryError)
  946. XCTAssertEqual(status?.description, "A memory error has occurred.")
  947. }
  948. do {
  949. let status = Status(rawValue: errSecInvalidData)
  950. XCTAssertEqual(status, .InvalidData)
  951. XCTAssertEqual(status?.description, "Invalid data was encountered.")
  952. }
  953. do {
  954. let status = Status(rawValue: errSecMDSError)
  955. XCTAssertEqual(status, .MDSError)
  956. XCTAssertEqual(status?.description, "A Module Directory Service error has occurred.")
  957. }
  958. do {
  959. let status = Status(rawValue: errSecInvalidPointer)
  960. XCTAssertEqual(status, .InvalidPointer)
  961. XCTAssertEqual(status?.description, "An invalid pointer was encountered.")
  962. }
  963. do {
  964. let status = Status(rawValue: errSecSelfCheckFailed)
  965. XCTAssertEqual(status, .SelfCheckFailed)
  966. XCTAssertEqual(status?.description, "Self-check has failed.")
  967. }
  968. do {
  969. let status = Status(rawValue: errSecFunctionFailed)
  970. XCTAssertEqual(status, .FunctionFailed)
  971. XCTAssertEqual(status?.description, "A function has failed.")
  972. }
  973. do {
  974. let status = Status(rawValue: errSecModuleManifestVerifyFailed)
  975. XCTAssertEqual(status, .ModuleManifestVerifyFailed)
  976. XCTAssertEqual(status?.description, "A module manifest verification failure has occurred.")
  977. }
  978. do {
  979. let status = Status(rawValue: errSecInvalidGUID)
  980. XCTAssertEqual(status, .InvalidGUID)
  981. XCTAssertEqual(status?.description, "An invalid GUID was encountered.")
  982. }
  983. do {
  984. let status = Status(rawValue: errSecInvalidHandle)
  985. XCTAssertEqual(status, .InvalidHandle)
  986. XCTAssertEqual(status?.description, "An invalid handle was encountered.")
  987. }
  988. do {
  989. let status = Status(rawValue: errSecInvalidDBList)
  990. XCTAssertEqual(status, .InvalidDBList)
  991. XCTAssertEqual(status?.description, "An invalid DB list was encountered.")
  992. }
  993. do {
  994. let status = Status(rawValue: errSecInvalidPassthroughID)
  995. XCTAssertEqual(status, .InvalidPassthroughID)
  996. XCTAssertEqual(status?.description, "An invalid passthrough ID was encountered.")
  997. }
  998. do {
  999. let status = Status(rawValue: errSecInvalidNetworkAddress)
  1000. XCTAssertEqual(status, .InvalidNetworkAddress)
  1001. XCTAssertEqual(status?.description, "An invalid network address was encountered.")
  1002. }
  1003. do {
  1004. let status = Status(rawValue: errSecCRLAlreadySigned)
  1005. XCTAssertEqual(status, .CRLAlreadySigned)
  1006. XCTAssertEqual(status?.description, "The certificate revocation list is already signed.")
  1007. }
  1008. do {
  1009. let status = Status(rawValue: errSecInvalidNumberOfFields)
  1010. XCTAssertEqual(status, .InvalidNumberOfFields)
  1011. XCTAssertEqual(status?.description, "An invalid number of fields were encountered.")
  1012. }
  1013. do {
  1014. let status = Status(rawValue: errSecVerificationFailure)
  1015. XCTAssertEqual(status, .VerificationFailure)
  1016. XCTAssertEqual(status?.description, "A verification failure occurred.")
  1017. }
  1018. do {
  1019. let status = Status(rawValue: errSecUnknownTag)
  1020. XCTAssertEqual(status, .UnknownTag)
  1021. XCTAssertEqual(status?.description, "An unknown tag was encountered.")
  1022. }
  1023. do {
  1024. let status = Status(rawValue: errSecInvalidSignature)
  1025. XCTAssertEqual(status, .InvalidSignature)
  1026. XCTAssertEqual(status?.description, "An invalid signature was encountered.")
  1027. }
  1028. do {
  1029. let status = Status(rawValue: errSecInvalidName)
  1030. XCTAssertEqual(status, .InvalidName)
  1031. XCTAssertEqual(status?.description, "An invalid name was encountered.")
  1032. }
  1033. do {
  1034. let status = Status(rawValue: errSecInvalidCertificateRef)
  1035. XCTAssertEqual(status, .InvalidCertificateRef)
  1036. XCTAssertEqual(status?.description, "An invalid certificate reference was encountered.")
  1037. }
  1038. do {
  1039. let status = Status(rawValue: errSecInvalidCertificateGroup)
  1040. XCTAssertEqual(status, .InvalidCertificateGroup)
  1041. XCTAssertEqual(status?.description, "An invalid certificate group was encountered.")
  1042. }
  1043. do {
  1044. let status = Status(rawValue: errSecTagNotFound)
  1045. XCTAssertEqual(status, .TagNotFound)
  1046. XCTAssertEqual(status?.description, "The specified tag was not found.")
  1047. }
  1048. do {
  1049. let status = Status(rawValue: errSecInvalidQuery)
  1050. XCTAssertEqual(status, .InvalidQuery)
  1051. XCTAssertEqual(status?.description, "The specified query was not valid.")
  1052. }
  1053. do {
  1054. let status = Status(rawValue: errSecInvalidValue)
  1055. XCTAssertEqual(status, .InvalidValue)
  1056. XCTAssertEqual(status?.description, "An invalid value was detected.")
  1057. }
  1058. do {
  1059. let status = Status(rawValue: errSecCallbackFailed)
  1060. XCTAssertEqual(status, .CallbackFailed)
  1061. XCTAssertEqual(status?.description, "A callback has failed.")
  1062. }
  1063. do {
  1064. let status = Status(rawValue: errSecACLDeleteFailed)
  1065. XCTAssertEqual(status, .ACLDeleteFailed)
  1066. XCTAssertEqual(status?.description, "An ACL delete operation has failed.")
  1067. }
  1068. do {
  1069. let status = Status(rawValue: errSecACLReplaceFailed)
  1070. XCTAssertEqual(status, .ACLReplaceFailed)
  1071. XCTAssertEqual(status?.description, "An ACL replace operation has failed.")
  1072. }
  1073. do {
  1074. let status = Status(rawValue: errSecACLAddFailed)
  1075. XCTAssertEqual(status, .ACLAddFailed)
  1076. XCTAssertEqual(status?.description, "An ACL add operation has failed.")
  1077. }
  1078. do {
  1079. let status = Status(rawValue: errSecACLChangeFailed)
  1080. XCTAssertEqual(status, .ACLChangeFailed)
  1081. XCTAssertEqual(status?.description, "An ACL change operation has failed.")
  1082. }
  1083. do {
  1084. let status = Status(rawValue: errSecInvalidAccessCredentials)
  1085. XCTAssertEqual(status, .InvalidAccessCredentials)
  1086. XCTAssertEqual(status?.description, "Invalid access credentials were encountered.")
  1087. }
  1088. do {
  1089. let status = Status(rawValue: errSecInvalidRecord)
  1090. XCTAssertEqual(status, .InvalidRecord)
  1091. XCTAssertEqual(status?.description, "An invalid record was encountered.")
  1092. }
  1093. do {
  1094. let status = Status(rawValue: errSecInvalidACL)
  1095. XCTAssertEqual(status, .InvalidACL)
  1096. XCTAssertEqual(status?.description, "An invalid ACL was encountered.")
  1097. }
  1098. do {
  1099. let status = Status(rawValue: errSecInvalidSampleValue)
  1100. XCTAssertEqual(status, .InvalidSampleValue)
  1101. XCTAssertEqual(status?.description, "An invalid sample value was encountered.")
  1102. }
  1103. do {
  1104. let status = Status(rawValue: errSecIncompatibleVersion)
  1105. XCTAssertEqual(status, .IncompatibleVersion)
  1106. XCTAssertEqual(status?.description, "An incompatible version was encountered.")
  1107. }
  1108. do {
  1109. let status = Status(rawValue: errSecPrivilegeNotGranted)
  1110. XCTAssertEqual(status, .PrivilegeNotGranted)
  1111. XCTAssertEqual(status?.description, "The privilege was not granted.")
  1112. }
  1113. do {
  1114. let status = Status(rawValue: errSecInvalidScope)
  1115. XCTAssertEqual(status, .InvalidScope)
  1116. XCTAssertEqual(status?.description, "An invalid scope was encountered.")
  1117. }
  1118. do {
  1119. let status = Status(rawValue: errSecPVCAlreadyConfigured)
  1120. XCTAssertEqual(status, .PVCAlreadyConfigured)
  1121. XCTAssertEqual(status?.description, "The PVC is already configured.")
  1122. }
  1123. do {
  1124. let status = Status(rawValue: errSecInvalidPVC)
  1125. XCTAssertEqual(status, .InvalidPVC)
  1126. XCTAssertEqual(status?.description, "An invalid PVC was encountered.")
  1127. }
  1128. do {
  1129. let status = Status(rawValue: errSecEMMLoadFailed)
  1130. XCTAssertEqual(status, .EMMLoadFailed)
  1131. XCTAssertEqual(status?.description, "The EMM load has failed.")
  1132. }
  1133. do {
  1134. let status = Status(rawValue: errSecEMMUnloadFailed)
  1135. XCTAssertEqual(status, .EMMUnloadFailed)
  1136. XCTAssertEqual(status?.description, "The EMM unload has failed.")
  1137. }
  1138. do {
  1139. let status = Status(rawValue: errSecAddinLoadFailed)
  1140. XCTAssertEqual(status, .AddinLoadFailed)
  1141. XCTAssertEqual(status?.description, "The add-in load operation has failed.")
  1142. }
  1143. do {
  1144. let status = Status(rawValue: errSecInvalidKeyRef)
  1145. XCTAssertEqual(status, .InvalidKeyRef)
  1146. XCTAssertEqual(status?.description, "An invalid key was encountered.")
  1147. }
  1148. do {
  1149. let status = Status(rawValue: errSecInvalidKeyHierarchy)
  1150. XCTAssertEqual(status, .InvalidKeyHierarchy)
  1151. XCTAssertEqual(status?.description, "An invalid key hierarchy was encountered.")
  1152. }
  1153. do {
  1154. let status = Status(rawValue: errSecAddinUnloadFailed)
  1155. XCTAssertEqual(status, .AddinUnloadFailed)
  1156. XCTAssertEqual(status?.description, "The add-in unload operation has failed.")
  1157. }
  1158. do {
  1159. let status = Status(rawValue: errSecLibraryReferenceNotFound)
  1160. XCTAssertEqual(status, .LibraryReferenceNotFound)
  1161. XCTAssertEqual(status?.description, "A library reference was not found.")
  1162. }
  1163. do {
  1164. let status = Status(rawValue: errSecInvalidAddinFunctionTable)
  1165. XCTAssertEqual(status, .InvalidAddinFunctionTable)
  1166. XCTAssertEqual(status?.description, "An invalid add-in function table was encountered.")
  1167. }
  1168. do {
  1169. let status = Status(rawValue: errSecInvalidServiceMask)
  1170. XCTAssertEqual(status, .InvalidServiceMask)
  1171. XCTAssertEqual(status?.description, "An invalid service mask was encountered.")
  1172. }
  1173. do {
  1174. let status = Status(rawValue: errSecModuleNotLoaded)
  1175. XCTAssertEqual(status, .ModuleNotLoaded)
  1176. XCTAssertEqual(status?.description, "A module was not loaded.")
  1177. }
  1178. do {
  1179. let status = Status(rawValue: errSecInvalidSubServiceID)
  1180. XCTAssertEqual(status, .InvalidSubServiceID)
  1181. XCTAssertEqual(status?.description, "An invalid subservice ID was encountered.")
  1182. }
  1183. do {
  1184. let status = Status(rawValue: errSecAttributeNotInContext)
  1185. XCTAssertEqual(status, .AttributeNotInContext)
  1186. XCTAssertEqual(status?.description, "An attribute was not in the context.")
  1187. }
  1188. do {
  1189. let status = Status(rawValue: errSecModuleManagerInitializeFailed)
  1190. XCTAssertEqual(status, .ModuleManagerInitializeFailed)
  1191. XCTAssertEqual(status?.description, "A module failed to initialize.")
  1192. }
  1193. do {
  1194. let status = Status(rawValue: errSecModuleManagerNotFound)
  1195. XCTAssertEqual(status, .ModuleManagerNotFound)
  1196. XCTAssertEqual(status?.description, "A module was not found.")
  1197. }
  1198. do {
  1199. let status = Status(rawValue: errSecEventNotificationCallbackNotFound)
  1200. XCTAssertEqual(status, .EventNotificationCallbackNotFound)
  1201. XCTAssertEqual(status?.description, "An event notification callback was not found.")
  1202. }
  1203. do {
  1204. let status = Status(rawValue: errSecInputLengthError)
  1205. XCTAssertEqual(status, .InputLengthError)
  1206. XCTAssertEqual(status?.description, "An input length error was encountered.")
  1207. }
  1208. do {
  1209. let status = Status(rawValue: errSecOutputLengthError)
  1210. XCTAssertEqual(status, .OutputLengthError)
  1211. XCTAssertEqual(status?.description, "An output length error was encountered.")
  1212. }
  1213. do {
  1214. let status = Status(rawValue: errSecPrivilegeNotSupported)
  1215. XCTAssertEqual(status, .PrivilegeNotSupported)
  1216. XCTAssertEqual(status?.description, "The privilege is not supported.")
  1217. }
  1218. do {
  1219. let status = Status(rawValue: errSecDeviceError)
  1220. XCTAssertEqual(status, .DeviceError)
  1221. XCTAssertEqual(status?.description, "A device error was encountered.")
  1222. }
  1223. do {
  1224. let status = Status(rawValue: errSecAttachHandleBusy)
  1225. XCTAssertEqual(status, .AttachHandleBusy)
  1226. XCTAssertEqual(status?.description, "The CSP handle was busy.")
  1227. }
  1228. do {
  1229. let status = Status(rawValue: errSecNotLoggedIn)
  1230. XCTAssertEqual(status, .NotLoggedIn)
  1231. XCTAssertEqual(status?.description, "You are not logged in.")
  1232. }
  1233. do {
  1234. let status = Status(rawValue: errSecAlgorithmMismatch)
  1235. XCTAssertEqual(status, .AlgorithmMismatch)
  1236. XCTAssertEqual(status?.description, "An algorithm mismatch was encountered.")
  1237. }
  1238. do {
  1239. let status = Status(rawValue: errSecKeyUsageIncorrect)
  1240. XCTAssertEqual(status, .KeyUsageIncorrect)
  1241. XCTAssertEqual(status?.description, "The key usage is incorrect.")
  1242. }
  1243. do {
  1244. let status = Status(rawValue: errSecKeyBlobTypeIncorrect)
  1245. XCTAssertEqual(status, .KeyBlobTypeIncorrect)
  1246. XCTAssertEqual(status?.description, "The key blob type is incorrect.")
  1247. }
  1248. do {
  1249. let status = Status(rawValue: errSecKeyHeaderInconsistent)
  1250. XCTAssertEqual(status, .KeyHeaderInconsistent)
  1251. XCTAssertEqual(status?.description, "The key header is inconsistent.")
  1252. }
  1253. do {
  1254. let status = Status(rawValue: errSecUnsupportedKeyFormat)
  1255. XCTAssertEqual(status, .UnsupportedKeyFormat)
  1256. XCTAssertEqual(status?.description, "The key header format is not supported.")
  1257. }
  1258. do {
  1259. let status = Status(rawValue: errSecUnsupportedKeySize)
  1260. XCTAssertEqual(status, .UnsupportedKeySize)
  1261. XCTAssertEqual(status?.description, "The key size is not supported.")
  1262. }
  1263. do {
  1264. let status = Status(rawValue: errSecInvalidKeyUsageMask)
  1265. XCTAssertEqual(status, .InvalidKeyUsageMask)
  1266. XCTAssertEqual(status?.description, "The key usage mask is not valid.")
  1267. }
  1268. do {
  1269. let status = Status(rawValue: errSecUnsupportedKeyUsageMask)
  1270. XCTAssertEqual(status, .UnsupportedKeyUsageMask)
  1271. XCTAssertEqual(status?.description, "The key usage mask is not supported.")
  1272. }
  1273. do {
  1274. let status = Status(rawValue: errSecInvalidKeyAttributeMask)
  1275. XCTAssertEqual(status, .InvalidKeyAttributeMask)
  1276. XCTAssertEqual(status?.description, "The key attribute mask is not valid.")
  1277. }
  1278. do {
  1279. let status = Status(rawValue: errSecUnsupportedKeyAttributeMask)
  1280. XCTAssertEqual(status, .UnsupportedKeyAttributeMask)
  1281. XCTAssertEqual(status?.description, "The key attribute mask is not supported.")
  1282. }
  1283. do {
  1284. let status = Status(rawValue: errSecInvalidKeyLabel)
  1285. XCTAssertEqual(status, .InvalidKeyLabel)
  1286. XCTAssertEqual(status?.description, "The key label is not valid.")
  1287. }
  1288. do {
  1289. let status = Status(rawValue: errSecUnsupportedKeyLabel)
  1290. XCTAssertEqual(status, .UnsupportedKeyLabel)
  1291. XCTAssertEqual(status?.description, "The key label is not supported.")
  1292. }
  1293. do {
  1294. let status = Status(rawValue: errSecInvalidKeyFormat)
  1295. XCTAssertEqual(status, .InvalidKeyFormat)
  1296. XCTAssertEqual(status?.description, "The key format is not valid.")
  1297. }
  1298. do {
  1299. let status = Status(rawValue: errSecUnsupportedVectorOfBuffers)
  1300. XCTAssertEqual(status, .UnsupportedVectorOfBuffers)
  1301. XCTAssertEqual(status?.description, "The vector of buffers is not supported.")
  1302. }
  1303. do {
  1304. let status = Status(rawValue: errSecInvalidInputVector)
  1305. XCTAssertEqual(status, .InvalidInputVector)
  1306. XCTAssertEqual(status?.description, "The input vector is not valid.")
  1307. }
  1308. do {
  1309. let status = Status(rawValue: errSecInvalidOutputVector)
  1310. XCTAssertEqual(status, .InvalidOutputVector)
  1311. XCTAssertEqual(status?.description, "The output vector is not valid.")
  1312. }
  1313. do {
  1314. let status = Status(rawValue: errSecInvalidContext)
  1315. XCTAssertEqual(status, .InvalidContext)
  1316. XCTAssertEqual(status?.description, "An invalid context was encountered.")
  1317. }
  1318. do {
  1319. let status = Status(rawValue: errSecInvalidAlgorithm)
  1320. XCTAssertEqual(status, .InvalidAlgorithm)
  1321. XCTAssertEqual(status?.description, "An invalid algorithm was encountered.")
  1322. }
  1323. do {
  1324. let status = Status(rawValue: errSecInvalidAttributeKey)
  1325. XCTAssertEqual(status, .InvalidAttributeKey)
  1326. XCTAssertEqual(status?.description, "A key attribute was not valid.")
  1327. }
  1328. do {
  1329. let status = Status(rawValue: errSecMissingAttributeKey)
  1330. XCTAssertEqual(status, .MissingAttributeKey)
  1331. XCTAssertEqual(status?.description, "A key attribute was missing.")
  1332. }
  1333. do {
  1334. let status = Status(rawValue: errSecInvalidAttributeInitVector)
  1335. XCTAssertEqual(status, .InvalidAttributeInitVector)
  1336. XCTAssertEqual(status?.description, "An init vector attribute was not valid.")
  1337. }
  1338. do {
  1339. let status = Status(rawValue: errSecMissingAttributeInitVector)
  1340. XCTAssertEqual(status, .MissingAttributeInitVector)
  1341. XCTAssertEqual(status?.description, "An init vector attribute was missing.")
  1342. }
  1343. do {
  1344. let status = Status(rawValue: errSecInvalidAttributeSalt)
  1345. XCTAssertEqual(status, .InvalidAttributeSalt)
  1346. XCTAssertEqual(status?.description, "A salt attribute was not valid.")
  1347. }
  1348. do {
  1349. let status = Status(rawValue: errSecMissingAttributeSalt)
  1350. XCTAssertEqual(status, .MissingAttributeSalt)
  1351. XCTAssertEqual(status?.description, "A salt attribute was missing.")
  1352. }
  1353. do {
  1354. let status = Status(rawValue: errSecInvalidAttributePadding)
  1355. XCTAssertEqual(status, .InvalidAttributePadding)
  1356. XCTAssertEqual(status?.description, "A padding attribute was not valid.")
  1357. }
  1358. do {
  1359. let status = Status(rawValue: errSecMissingAttributePadding)
  1360. XCTAssertEqual(status, .MissingAttributePadding)
  1361. XCTAssertEqual(status?.description, "A padding attribute was missing.")
  1362. }
  1363. do {
  1364. let status = Status(rawValue: errSecInvalidAttributeRandom)
  1365. XCTAssertEqual(status, .InvalidAttributeRandom)
  1366. XCTAssertEqual(status?.description, "A random number attribute was not valid.")
  1367. }
  1368. do {
  1369. let status = Status(rawValue: errSecMissingAttributeRandom)
  1370. XCTAssertEqual(status, .MissingAttributeRandom)
  1371. XCTAssertEqual(status?.description, "A random number attribute was missing.")
  1372. }
  1373. do {
  1374. let status = Status(rawValue: errSecInvalidAttributeSeed)
  1375. XCTAssertEqual(status, .InvalidAttributeSeed)
  1376. XCTAssertEqual(status?.description, "A seed attribute was not valid.")
  1377. }
  1378. do {
  1379. let status = Status(rawValue: errSecMissingAttributeSeed)
  1380. XCTAssertEqual(status, .MissingAttributeSeed)
  1381. XCTAssertEqual(status?.description, "A seed attribute was missing.")
  1382. }
  1383. do {
  1384. let status = Status(rawValue: errSecInvalidAttributePassphrase)
  1385. XCTAssertEqual(status, .InvalidAttributePassphrase)
  1386. XCTAssertEqual(status?.description, "A passphrase attribute was not valid.")
  1387. }
  1388. do {
  1389. let status = Status(rawValue: errSecMissingAttributePassphrase)
  1390. XCTAssertEqual(status, .MissingAttributePassphrase)
  1391. XCTAssertEqual(status?.description, "A passphrase attribute was missing.")
  1392. }
  1393. do {
  1394. let status = Status(rawValue: errSecInvalidAttributeKeyLength)
  1395. XCTAssertEqual(status, .InvalidAttributeKeyLength)
  1396. XCTAssertEqual(status?.description, "A key length attribute was not valid.")
  1397. }
  1398. do {
  1399. let status = Status(rawValue: errSecMissingAttributeKeyLength)
  1400. XCTAssertEqual(status, .MissingAttributeKeyLength)
  1401. XCTAssertEqual(status?.description, "A key length attribute was missing.")
  1402. }
  1403. do {
  1404. let status = Status(rawValue: errSecInvalidAttributeBlockSize)
  1405. XCTAssertEqual(status, .InvalidAttributeBlockSize)
  1406. XCTAssertEqual(status?.description, "A block size attribute was not valid.")
  1407. }
  1408. do {
  1409. let status = Status(rawValue: errSecMissingAttributeBlockSize)
  1410. XCTAssertEqual(status, .MissingAttributeBlockSize)
  1411. XCTAssertEqual(status?.description, "A block size attribute was missing.")
  1412. }
  1413. do {
  1414. let status = Status(rawValue: errSecInvalidAttributeOutputSize)
  1415. XCTAssertEqual(status, .InvalidAttributeOutputSize)
  1416. XCTAssertEqual(status?.description, "An output size attribute was not valid.")
  1417. }
  1418. do {
  1419. let status = Status(rawValue: errSecMissingAttributeOutputSize)
  1420. XCTAssertEqual(status, .MissingAttributeOutputSize)
  1421. XCTAssertEqual(status?.description, "An output size attribute was missing.")
  1422. }
  1423. do {
  1424. let status = Status(rawValue: errSecInvalidAttributeRounds)
  1425. XCTAssertEqual(status, .InvalidAttributeRounds)
  1426. XCTAssertEqual(status?.description, "The number of rounds attribute was not valid.")
  1427. }
  1428. do {
  1429. let status = Status(rawValue: errSecMissingAttributeRounds)
  1430. XCTAssertEqual(status, .MissingAttributeRounds)
  1431. XCTAssertEqual(status?.description, "The number of rounds attribute was missing.")
  1432. }
  1433. do {
  1434. let status = Status(rawValue: errSecInvalidAlgorithmParms)
  1435. XCTAssertEqual(status, .InvalidAlgorithmParms)
  1436. XCTAssertEqual(status?.description, "An algorithm parameters attribute was not valid.")
  1437. }
  1438. do {
  1439. let status = Status(rawValue: errSecMissingAlgorithmParms)
  1440. XCTAssertEqual(status, .MissingAlgorithmParms)
  1441. XCTAssertEqual(status?.description, "An algorithm parameters attribute was missing.")
  1442. }
  1443. do {
  1444. let status = Status(rawValue: errSecInvalidAttributeLabel)
  1445. XCTAssertEqual(status, .InvalidAttributeLabel)
  1446. XCTAssertEqual(status?.description, "A label attribute was not valid.")
  1447. }
  1448. do {
  1449. let status = Status(rawValue: errSecMissingAttributeLabel)
  1450. XCTAssertEqual(status, .MissingAttributeLabel)
  1451. XCTAssertEqual(status?.description, "A label attribute was missing.")
  1452. }
  1453. do {
  1454. let status = Status(rawValue: errSecInvalidAttributeKeyType)
  1455. XCTAssertEqual(status, .InvalidAttributeKeyType)
  1456. XCTAssertEqual(status?.description, "A key type attribute was not valid.")
  1457. }
  1458. do {
  1459. let status = Status(rawValue: errSecMissingAttributeKeyType)
  1460. XCTAssertEqual(status, .MissingAttributeKeyType)
  1461. XCTAssertEqual(status?.description, "A key type attribute was missing.")
  1462. }
  1463. do {
  1464. let status = Status(rawValue: errSecInvalidAttributeMode)
  1465. XCTAssertEqual(status, .InvalidAttributeMode)
  1466. XCTAssertEqual(status?.description, "A mode attribute was not valid.")
  1467. }
  1468. do {
  1469. let status = Status(rawValue: errSecMissingAttributeMode)
  1470. XCTAssertEqual(status, .MissingAttributeMode)
  1471. XCTAssertEqual(status?.description, "A mode attribute was missing.")
  1472. }
  1473. do {
  1474. let status = Status(rawValue: errSecInvalidAttributeEffectiveBits)
  1475. XCTAssertEqual(status, .InvalidAttributeEffectiveBits)
  1476. XCTAssertEqual(status?.description, "An effective bits attribute was not valid.")
  1477. }
  1478. do {
  1479. let status = Status(rawValue: errSecMissingAttributeEffectiveBits)
  1480. XCTAssertEqual(status, .MissingAttributeEffectiveBits)
  1481. XCTAssertEqual(status?.description, "An effective bits attribute was missing.")
  1482. }
  1483. do {
  1484. let status = Status(rawValue: errSecInvalidAttributeStartDate)
  1485. XCTAssertEqual(status, .InvalidAttributeStartDate)
  1486. XCTAssertEqual(status?.description, "A start date attribute was not valid.")
  1487. }
  1488. do {
  1489. let status = Status(rawValue: errSecMissingAttributeStartDate)
  1490. XCTAssertEqual(status, .MissingAttributeStartDate)
  1491. XCTAssertEqual(status?.description, "A start date attribute was missing.")
  1492. }
  1493. do {
  1494. let status = Status(rawValue: errSecInvalidAttributeEndDate)
  1495. XCTAssertEqual(status, .InvalidAttributeEndDate)
  1496. XCTAssertEqual(status?.description, "An end date attribute was not valid.")
  1497. }
  1498. do {
  1499. let status = Status(rawValue: errSecMissingAttributeEndDate)
  1500. XCTAssertEqual(status, .MissingAttributeEndDate)
  1501. XCTAssertEqual(status?.description, "An end date attribute was missing.")
  1502. }
  1503. do {
  1504. let status = Status(rawValue: errSecInvalidAttributeVersion)
  1505. XCTAssertEqual(status, .InvalidAttributeVersion)
  1506. XCTAssertEqual(status?.description, "A version attribute was not valid.")
  1507. }
  1508. do {
  1509. let status = Status(rawValue: errSecMissingAttributeVersion)
  1510. XCTAssertEqual(status, .MissingAttributeVersion)
  1511. XCTAssertEqual(status?.description, "A version attribute was missing.")
  1512. }
  1513. do {
  1514. let status = Status(rawValue: errSecInvalidAttributePrime)
  1515. XCTAssertEqual(status, .InvalidAttributePrime)
  1516. XCTAssertEqual(status?.description, "A prime attribute was not valid.")
  1517. }
  1518. do {
  1519. let status = Status(rawValue: errSecMissingAttributePrime)
  1520. XCTAssertEqual(status, .MissingAttributePrime)
  1521. XCTAssertEqual(status?.description, "A prime attribute was missing.")
  1522. }
  1523. do {
  1524. let status = Status(rawValue: errSecInvalidAttributeBase)
  1525. XCTAssertEqual(status, .InvalidAttributeBase)
  1526. XCTAssertEqual(status?.description, "A base attribute was not valid.")
  1527. }
  1528. do {
  1529. let status = Status(rawValue: errSecMissingAttributeBase)
  1530. XCTAssertEqual(status, .MissingAttributeBase)
  1531. XCTAssertEqual(status?.description, "A base attribute was missing.")
  1532. }
  1533. do {
  1534. let status = Status(rawValue: errSecInvalidAttributeSubprime)
  1535. XCTAssertEqual(status, .InvalidAttributeSubprime)
  1536. XCTAssertEqual(status?.description, "A subprime attribute was not valid.")
  1537. }
  1538. do {
  1539. let status = Status(rawValue: errSecMissingAttributeSubprime)
  1540. XCTAssertEqual(status, .MissingAttributeSubprime)
  1541. XCTAssertEqual(status?.description, "A subprime attribute was missing.")
  1542. }
  1543. do {
  1544. let status = Status(rawValue: errSecInvalidAttributeIterationCount)
  1545. XCTAssertEqual(status, .InvalidAttributeIterationCount)
  1546. XCTAssertEqual(status?.description, "An iteration count attribute was not valid.")
  1547. }
  1548. do {
  1549. let status = Status(rawValue: errSecMissingAttributeIterationCount)
  1550. XCTAssertEqual(status, .MissingAttributeIterationCount)
  1551. XCTAssertEqual(status?.description, "An iteration count attribute was missing.")
  1552. }
  1553. do {
  1554. let status = Status(rawValue: errSecInvalidAttributeDLDBHandle)
  1555. XCTAssertEqual(status, .InvalidAttributeDLDBHandle)
  1556. XCTAssertEqual(status?.description, "A database handle attribute was not valid.")
  1557. }
  1558. do {
  1559. let status = Status(rawValue: errSecMissingAttributeDLDBHandle)
  1560. XCTAssertEqual(status, .MissingAttributeDLDBHandle)
  1561. XCTAssertEqual(status?.description, "A database handle attribute was missing.")
  1562. }
  1563. do {
  1564. let status = Status(rawValue: errSecInvalidAttributeAccessCredentials)
  1565. XCTAssertEqual(status, .InvalidAttributeAccessCredentials)
  1566. XCTAssertEqual(status?.description, "An access credentials attribute was not valid.")
  1567. }
  1568. do {
  1569. let status = Status(rawValue: errSecMissingAttributeAccessCredentials)
  1570. XCTAssertEqual(status, .MissingAttributeAccessCredentials)
  1571. XCTAssertEqual(status?.description, "An access credentials attribute was missing.")
  1572. }
  1573. do {
  1574. let status = Status(rawValue: errSecInvalidAttributePublicKeyFormat)
  1575. XCTAssertEqual(status, .InvalidAttributePublicKeyFormat)
  1576. XCTAssertEqual(status?.description, "A public key format attribute was not valid.")
  1577. }
  1578. do {
  1579. let status = Status(rawValue: errSecMissingAttributePublicKeyFormat)
  1580. XCTAssertEqual(status, .MissingAttributePublicKeyFormat)
  1581. XCTAssertEqual(status?.description, "A public key format attribute was missing.")
  1582. }
  1583. do {
  1584. let status = Status(rawValue: errSecInvalidAttributePrivateKeyFormat)
  1585. XCTAssertEqual(status, .InvalidAttributePrivateKeyFormat)
  1586. XCTAssertEqual(status?.description, "A private key format attribute was not valid.")
  1587. }
  1588. do {
  1589. let status = Status(rawValue: errSecMissingAttributePrivateKeyFormat)
  1590. XCTAssertEqual(status, .MissingAttributePrivateKeyFormat)
  1591. XCTAssertEqual(status?.description, "A private key format attribute was missing.")
  1592. }
  1593. do {
  1594. let status = Status(rawValue: errSecInvalidAttributeSymmetricKeyFormat)
  1595. XCTAssertEqual(status, .InvalidAttributeSymmetricKeyFormat)
  1596. XCTAssertEqual(status?.description, "A symmetric key format attribute was not valid.")
  1597. }
  1598. do {
  1599. let status = Status(rawValue: errSecMissingAttributeSymmetricKeyFormat)
  1600. XCTAssertEqual(status, .MissingAttributeSymmetricKeyFormat)
  1601. XCTAssertEqual(status?.description, "A symmetric key format attribute was missing.")
  1602. }
  1603. do {
  1604. let status = Status(rawValue: errSecInvalidAttributeWrappedKeyFormat)
  1605. XCTAssertEqual(status, .InvalidAttributeWrappedKeyFormat)
  1606. XCTAssertEqual(status?.description, "A wrapped key format attribute was not valid.")
  1607. }
  1608. do {
  1609. let status = Status(rawValue: errSecMissingAttributeWrappedKeyFormat)
  1610. XCTAssertEqual(status, .MissingAttributeWrappedKeyFormat)
  1611. XCTAssertEqual(status?.description, "A wrapped key format attribute was missing.")
  1612. }
  1613. do {
  1614. let status = Status(rawValue: errSecStagedOperationInProgress)
  1615. XCTAssertEqual(status, .StagedOperationInProgress)
  1616. XCTAssertEqual(status?.description, "A staged operation is in progress.")
  1617. }
  1618. do {
  1619. let status = Status(rawValue: errSecStagedOperationNotStarted)
  1620. XCTAssertEqual(status, .StagedOperationNotStarted)
  1621. XCTAssertEqual(status?.description, "A staged operation was not started.")
  1622. }
  1623. do {
  1624. let status = Status(rawValue: errSecVerifyFailed)
  1625. XCTAssertEqual(status, .VerifyFailed)
  1626. XCTAssertEqual(status?.description, "A cryptographic verification failure has occurred.")
  1627. }
  1628. do {
  1629. let status = Status(rawValue: errSecQuerySizeUnknown)
  1630. XCTAssertEqual(status, .QuerySizeUnknown)
  1631. XCTAssertEqual(status?.description, "The query size is unknown.")
  1632. }
  1633. do {
  1634. let status = Status(rawValue: errSecBlockSizeMismatch)
  1635. XCTAssertEqual(status, .BlockSizeMismatch)
  1636. XCTAssertEqual(status?.description, "A block size mismatch occurred.")
  1637. }
  1638. do {
  1639. let status = Status(rawValue: errSecPublicKeyInconsistent)
  1640. XCTAssertEqual(status, .PublicKeyInconsistent)
  1641. XCTAssertEqual(status?.description, "The public key was inconsistent.")
  1642. }
  1643. do {
  1644. let status = Status(rawValue: errSecDeviceVerifyFailed)
  1645. XCTAssertEqual(status, .DeviceVerifyFailed)
  1646. XCTAssertEqual(status?.description, "A device verification failure has occurred.")
  1647. }
  1648. do {
  1649. let status = Status(rawValue: errSecInvalidLoginName)
  1650. XCTAssertEqual(status, .InvalidLoginName)
  1651. XCTAssertEqual(status?.description, "An invalid login name was detected.")
  1652. }
  1653. do {
  1654. let status = Status(rawValue: errSecAlreadyLoggedIn)
  1655. XCTAssertEqual(status, .AlreadyLoggedIn)
  1656. XCTAssertEqual(status?.description, "The user is already logged in.")
  1657. }
  1658. do {
  1659. let status = Status(rawValue: errSecInvalidDigestAlgorithm)
  1660. XCTAssertEqual(status, .InvalidDigestAlgorithm)
  1661. XCTAssertEqual(status?.description, "An invalid digest algorithm was detected.")
  1662. }
  1663. do {
  1664. let status = Status(rawValue: errSecInvalidCRLGroup)
  1665. XCTAssertEqual(status, .InvalidCRLGroup)
  1666. XCTAssertEqual(status?.description, "An invalid CRL group was detected.")
  1667. }
  1668. do {
  1669. let status = Status(rawValue: errSecCertificateCannotOperate)
  1670. XCTAssertEqual(status, .CertificateCannotOperate)
  1671. XCTAssertEqual(status?.description, "The certificate cannot operate.")
  1672. }
  1673. do {
  1674. let status = Status(rawValue: errSecCertificateExpired)
  1675. XCTAssertEqual(status, .CertificateExpired)
  1676. XCTAssertEqual(status?.description, "An expired certificate was detected.")
  1677. }
  1678. do {
  1679. let status = Status(rawValue: errSecCertificateNotValidYet)
  1680. XCTAssertEqual(status, .CertificateNotValidYet)
  1681. XCTAssertEqual(status?.description, "The certificate is not yet valid.")
  1682. }
  1683. do {
  1684. let status = Status(rawValue: errSecCertificateRevoked)
  1685. XCTAssertEqual(status, .CertificateRevoked)
  1686. XCTAssertEqual(status?.description, "The certificate was revoked.")
  1687. }
  1688. do {
  1689. let status = Status(rawValue: errSecCertificateSuspended)
  1690. XCTAssertEqual(status, .CertificateSuspended)
  1691. XCTAssertEqual(status?.description, "The certificate was suspended.")
  1692. }
  1693. do {
  1694. let status = Status(rawValue: errSecInsufficientCredentials)
  1695. XCTAssertEqual(status, .InsufficientCredentials)
  1696. XCTAssertEqual(status?.description, "Insufficient credentials were detected.")
  1697. }
  1698. do {
  1699. let status = Status(rawValue: errSecInvalidAction)
  1700. XCTAssertEqual(status, .InvalidAction)
  1701. XCTAssertEqual(status?.description, "The action was not valid.")
  1702. }
  1703. do {
  1704. let status = Status(rawValue: errSecInvalidAuthority)
  1705. XCTAssertEqual(status, .InvalidAuthority)
  1706. XCTAssertEqual(status?.description, "The authority was not valid.")
  1707. }
  1708. do {
  1709. let status = Status(rawValue: errSecVerifyActionFailed)
  1710. XCTAssertEqual(status, .VerifyActionFailed)
  1711. XCTAssertEqual(status?.description, "A verify action has failed.")
  1712. }
  1713. do {
  1714. let status = Status(rawValue: errSecInvalidCertAuthority)
  1715. XCTAssertEqual(status, .InvalidCertAuthority)
  1716. XCTAssertEqual(status?.description, "The certificate authority was not valid.")
  1717. }
  1718. do {
  1719. let status = Status(rawValue: errSecInvaldCRLAuthority)
  1720. XCTAssertEqual(status, .InvaldCRLAuthority)
  1721. XCTAssertEqual(status?.description, "The CRL authority was not valid.")
  1722. }
  1723. do {
  1724. let status = Status(rawValue: errSecInvalidCRLEncoding)
  1725. XCTAssertEqual(status, .InvalidCRLEncoding)
  1726. XCTAssertEqual(status?.description, "The CRL encoding was not valid.")
  1727. }
  1728. do {
  1729. let status = Status(rawValue: errSecInvalidCRLType)
  1730. XCTAssertEqual(status, .InvalidCRLType)
  1731. XCTAssertEqual(status?.description, "The CRL type was not valid.")
  1732. }
  1733. do {
  1734. let status = Status(rawValue: errSecInvalidCRL)
  1735. XCTAssertEqual(status, .InvalidCRL)
  1736. XCTAssertEqual(status?.description, "The CRL was not valid.")
  1737. }
  1738. do {
  1739. let status = Status(rawValue: errSecInvalidFormType)
  1740. XCTAssertEqual(status, .InvalidFormType)
  1741. XCTAssertEqual(status?.description, "The form type was not valid.")
  1742. }
  1743. do {
  1744. let status = Status(rawValue: errSecInvalidID)
  1745. XCTAssertEqual(status, .InvalidID)
  1746. XCTAssertEqual(status?.description, "The ID was not valid.")
  1747. }
  1748. do {
  1749. let status = Status(rawValue: errSecInvalidIdentifier)
  1750. XCTAssertEqual(status, .InvalidIdentifier)
  1751. XCTAssertEqual(status?.description, "The identifier was not valid.")
  1752. }
  1753. do {
  1754. let status = Status(rawValue: errSecInvalidIndex)
  1755. XCTAssertEqual(status, .InvalidIndex)
  1756. XCTAssertEqual(status?.description, "The index was not valid.")
  1757. }
  1758. do {
  1759. let status = Status(rawValue: errSecInvalidPolicyIdentifiers)
  1760. XCTAssertEqual(status, .InvalidPolicyIdentifiers)
  1761. XCTAssertEqual(status?.description, "The policy identifiers are not valid.")
  1762. }
  1763. do {
  1764. let status = Status(rawValue: errSecInvalidTimeString)
  1765. XCTAssertEqual(status, .InvalidTimeString)
  1766. XCTAssertEqual(status?.description, "The time specified was not valid.")
  1767. }
  1768. do {
  1769. let status = Status(rawValue: errSecInvalidReason)
  1770. XCTAssertEqual(status, .InvalidReason)
  1771. XCTAssertEqual(status?.description, "The trust policy reason was not valid.")
  1772. }
  1773. do {
  1774. let status = Status(rawValue: errSecInvalidRequestInputs)
  1775. XCTAssertEqual(status, .InvalidRequestInputs)
  1776. XCTAssertEqual(status?.description, "The request inputs are not valid.")
  1777. }
  1778. do {
  1779. let status = Status(rawValue: errSecInvalidResponseVector)
  1780. XCTAssertEqual(status, .InvalidResponseVector)
  1781. XCTAssertEqual(status?.description, "The response vector was not valid.")
  1782. }
  1783. do {
  1784. let status = Status(rawValue: errSecInvalidStopOnPolicy)
  1785. XCTAssertEqual(status, .InvalidStopOnPolicy)
  1786. XCTAssertEqual(status?.description, "The stop-on policy was not valid.")
  1787. }
  1788. do {
  1789. let status = Status(rawValue: errSecInvalidTuple)
  1790. XCTAssertEqual(status, .InvalidTuple)
  1791. XCTAssertEqual(status?.description, "The tuple was not valid.")
  1792. }
  1793. do {
  1794. let status = Status(rawValue: errSecMultipleValuesUnsupported)
  1795. XCTAssertEqual(status, .MultipleValuesUnsupported)
  1796. XCTAssertEqual(status?.description, "Multiple values are not supported.")
  1797. }
  1798. do {
  1799. let status = Status(rawValue: errSecNotTrusted)
  1800. XCTAssertEqual(status, .NotTrusted)
  1801. XCTAssertEqual(status?.description, "The trust policy was not trusted.")
  1802. }
  1803. do {
  1804. let status = Status(rawValue: errSecNoDefaultAuthority)
  1805. XCTAssertEqual(status, .NoDefaultAuthority)
  1806. XCTAssertEqual(status?.description, "No default authority was detected.")
  1807. }
  1808. do {
  1809. let status = Status(rawValue: errSecRejectedForm)
  1810. XCTAssertEqual(status, .RejectedForm)
  1811. XCTAssertEqual(status?.description, "The trust policy had a rejected form.")
  1812. }
  1813. do {
  1814. let status = Status(rawValue: errSecRequestLost)
  1815. XCTAssertEqual(status, .RequestLost)
  1816. XCTAssertEqual(status?.description, "The request was lost.")
  1817. }
  1818. do {
  1819. let status = Status(rawValue: errSecRequestRejected)
  1820. XCTAssertEqual(status, .RequestRejected)
  1821. XCTAssertEqual(status?.description, "The request was rejected.")
  1822. }
  1823. do {
  1824. let status = Status(rawValue: errSecUnsupportedAddressType)
  1825. XCTAssertEqual(status, .UnsupportedAddressType)
  1826. XCTAssertEqual(status?.description, "The address type is not supported.")
  1827. }
  1828. do {
  1829. let status = Status(rawValue: errSecUnsupportedService)
  1830. XCTAssertEqual(status, .UnsupportedService)
  1831. XCTAssertEqual(status?.description, "The service is not supported.")
  1832. }
  1833. do {
  1834. let status = Status(rawValue: errSecInvalidTupleGroup)
  1835. XCTAssertEqual(status, .InvalidTupleGroup)
  1836. XCTAssertEqual(status?.description, "The tuple group was not valid.")
  1837. }
  1838. do {
  1839. let status = Status(rawValue: errSecInvalidBaseACLs)
  1840. XCTAssertEqual(status, .InvalidBaseACLs)
  1841. XCTAssertEqual(status?.description, "The base ACLs are not valid.")
  1842. }
  1843. do {
  1844. let status = Status(rawValue: errSecInvalidTupleCredendtials)
  1845. XCTAssertEqual(status, .InvalidTupleCredendtials)
  1846. XCTAssertEqual(status?.description, "The tuple credentials are not valid.")
  1847. }
  1848. do {
  1849. let status = Status(rawValue: errSecInvalidEncoding)
  1850. XCTAssertEqual(status, .InvalidEncoding)
  1851. XCTAssertEqual(status?.description, "The encoding was not valid.")
  1852. }
  1853. do {
  1854. let status = Status(rawValue: errSecInvalidValidityPeriod)
  1855. XCTAssertEqual(status, .InvalidValidityPeriod)
  1856. XCTAssertEqual(status?.description, "The validity period was not valid.")
  1857. }
  1858. do {
  1859. let status = Status(rawValue: errSecInvalidRequestor)
  1860. XCTAssertEqual(status, .InvalidRequestor)
  1861. XCTAssertEqual(status?.description, "The requestor was not valid.")
  1862. }
  1863. do {
  1864. let status = Status(rawValue: errSecRequestDescriptor)
  1865. XCTAssertEqual(status, .RequestDescriptor)
  1866. XCTAssertEqual(status?.description, "The request descriptor was not valid.")
  1867. }
  1868. do {
  1869. let status = Status(rawValue: errSecInvalidBundleInfo)
  1870. XCTAssertEqual(status, .InvalidBundleInfo)
  1871. XCTAssertEqual(status?.description, "The bundle information was not valid.")
  1872. }
  1873. do {
  1874. let status = Status(rawValue: errSecInvalidCRLIndex)
  1875. XCTAssertEqual(status, .InvalidCRLIndex)
  1876. XCTAssertEqual(status?.description, "The CRL index was not valid.")
  1877. }
  1878. do {
  1879. let status = Status(rawValue: errSecNoFieldValues)
  1880. XCTAssertEqual(status, .NoFieldValues)
  1881. XCTAssertEqual(status?.description, "No field values were detected.")
  1882. }
  1883. do {
  1884. let status = Status(rawValue: errSecUnsupportedFieldFormat)
  1885. XCTAssertEqual(status, .UnsupportedFieldFormat)
  1886. XCTAssertEqual(status?.description, "The field format is not supported.")
  1887. }
  1888. do {
  1889. let status = Status(rawValue: errSecUnsupportedIndexInfo)
  1890. XCTAssertEqual(status, .UnsupportedIndexInfo)
  1891. XCTAssertEqual(status?.description, "The index information is not supported.")
  1892. }
  1893. do {
  1894. let status = Status(rawValue: errSecUnsupportedLocality)
  1895. XCTAssertEqual(status, .UnsupportedLocality)
  1896. XCTAssertEqual(status?.description, "The locality is not supported.")
  1897. }
  1898. do {
  1899. let status = Status(rawValue: errSecUnsupportedNumAttributes)
  1900. XCTAssertEqual(status, .UnsupportedNumAttributes)
  1901. XCTAssertEqual(status?.description, "The number of attributes is not supported.")
  1902. }
  1903. do {
  1904. let status = Status(rawValue: errSecUnsupportedNumIndexes)
  1905. XCTAssertEqual(status, .UnsupportedNumIndexes)
  1906. XCTAssertEqual(status?.description, "The number of indexes is not supported.")
  1907. }
  1908. do {
  1909. let status = Status(rawValue: errSecUnsupportedNumRecordTypes)
  1910. XCTAssertEqual(status, .UnsupportedNumRecordTypes)
  1911. XCTAssertEqual(status?.description, "The number of record types is not supported.")
  1912. }
  1913. do {
  1914. let status = Status(rawValue: errSecFieldSpecifiedMultiple)
  1915. XCTAssertEqual(status, .FieldSpecifiedMultiple)
  1916. XCTAssertEqual(status?.description, "Too many fields were specified.")
  1917. }
  1918. do {
  1919. let status = Status(rawValue: errSecIncompatibleFieldFormat)
  1920. XCTAssertEqual(status, .IncompatibleFieldFormat)
  1921. XCTAssertEqual(status?.description, "The field format was incompatible.")
  1922. }
  1923. do {
  1924. let status = Status(rawValue: errSecInvalidParsingModule)
  1925. XCTAssertEqual(status, .InvalidParsingModule)
  1926. XCTAssertEqual(status?.description, "The parsing module was not valid.")
  1927. }
  1928. do {
  1929. let status = Status(rawValue: errSecDatabaseLocked)
  1930. XCTAssertEqual(status, .DatabaseLocked)
  1931. XCTAssertEqual(status?.description, "The database is locked.")
  1932. }
  1933. do {
  1934. let status = Status(rawValue: errSecDatastoreIsOpen)
  1935. XCTAssertEqual(status, .DatastoreIsOpen)
  1936. XCTAssertEqual(status?.description, "The data store is open.")
  1937. }
  1938. do {
  1939. let status = Status(rawValue: errSecMissingValue)
  1940. XCTAssertEqual(status, .MissingValue)
  1941. XCTAssertEqual(status?.description, "A missing value was detected.")
  1942. }
  1943. do {
  1944. let status = Status(rawValue: errSecUnsupportedQueryLimits)
  1945. XCTAssertEqual(status, .UnsupportedQueryLimits)
  1946. XCTAssertEqual(status?.description, "The query limits are not supported.")
  1947. }
  1948. do {
  1949. let status = Status(rawValue: errSecUnsupportedNumSelectionPreds)
  1950. XCTAssertEqual(status, .UnsupportedNumSelectionPreds)
  1951. XCTAssertEqual(status?.description, "The number of selection predicates is not supported.")
  1952. }
  1953. do {
  1954. let status = Status(rawValue: errSecUnsupportedOperator)
  1955. XCTAssertEqual(status, .UnsupportedOperator)
  1956. XCTAssertEqual(status?.description, "The operator is not supported.")
  1957. }
  1958. do {
  1959. let status = Status(rawValue: errSecInvalidDBLocation)
  1960. XCTAssertEqual(status, .InvalidDBLocation)
  1961. XCTAssertEqual(status?.description, "The database location is not valid.")
  1962. }
  1963. do {
  1964. let status = Status(rawValue: errSecInvalidAccessRequest)
  1965. XCTAssertEqual(status, .InvalidAccessRequest)
  1966. XCTAssertEqual(status?.description, "The access request is not valid.")
  1967. }
  1968. do {
  1969. let status = Status(rawValue: errSecInvalidIndexInfo)
  1970. XCTAssertEqual(status, .InvalidIndexInfo)
  1971. XCTAssertEqual(status?.description, "The index information is not valid.")
  1972. }
  1973. do {
  1974. let status = Status(rawValue: errSecInvalidNewOwner)
  1975. XCTAssertEqual(status, .InvalidNewOwner)
  1976. XCTAssertEqual(status?.description, "The new owner is not valid.")
  1977. }
  1978. do {
  1979. let status = Status(rawValue: errSecInvalidModifyMode)
  1980. XCTAssertEqual(status, .InvalidModifyMode)
  1981. XCTAssertEqual(status?.description, "The modify mode is not valid.")
  1982. }
  1983. do {
  1984. let status = Status(rawValue: errSecMissingRequiredExtension)
  1985. XCTAssertEqual(status, .MissingRequiredExtension)
  1986. XCTAssertEqual(status?.description, "A required certificate extension is missing.")
  1987. }
  1988. do {
  1989. let status = Status(rawValue: errSecExtendedKeyUsageNotCritical)
  1990. XCTAssertEqual(status, .ExtendedKeyUsageNotCritical)
  1991. XCTAssertEqual(status?.description, "The extended key usage extension was not marked critical.")
  1992. }
  1993. do {
  1994. let status = Status(rawValue: errSecTimestampMissing)
  1995. XCTAssertEqual(status, .TimestampMissing)
  1996. XCTAssertEqual(status?.description, "A timestamp was expected but was not found.")
  1997. }
  1998. do {
  1999. let status = Status(rawValue: errSecTimestampInvalid)
  2000. XCTAssertEqual(status, .TimestampInvalid)
  2001. XCTAssertEqual(status?.description, "The timestamp was not valid.")
  2002. }
  2003. do {
  2004. let status = Status(rawValue: errSecTimestampNotTrusted)
  2005. XCTAssertEqual(status, .TimestampNotTrusted)
  2006. XCTAssertEqual(status?.description, "The timestamp was not trusted.")
  2007. }
  2008. do {
  2009. let status = Status(rawValue: errSecTimestampServiceNotAvailable)
  2010. XCTAssertEqual(status, .TimestampServiceNotAvailable)
  2011. XCTAssertEqual(status?.description, "The timestamp service is not available.")
  2012. }
  2013. do {
  2014. let status = Status(rawValue: errSecTimestampBadAlg)
  2015. XCTAssertEqual(status, .TimestampBadAlg)
  2016. XCTAssertEqual(status?.description, "An unrecognized or unsupported Algorithm Identifier in timestamp.")
  2017. }
  2018. do {
  2019. let status = Status(rawValue: errSecTimestampBadRequest)
  2020. XCTAssertEqual(status, .TimestampBadRequest)
  2021. XCTAssertEqual(status?.description, "The timestamp transaction is not permitted or supported.")
  2022. }
  2023. do {
  2024. let status = Status(rawValue: errSecTimestampBadDataFormat)
  2025. XCTAssertEqual(status, .TimestampBadDataFormat)
  2026. XCTAssertEqual(status?.description, "The timestamp data submitted has the wrong format.")
  2027. }
  2028. do {
  2029. let status = Status(rawValue: errSecTimestampTimeNotAvailable)
  2030. XCTAssertEqual(status, .TimestampTimeNotAvailable)
  2031. XCTAssertEqual(status?.description, "The time source for the Timestamp Authority is not available.")
  2032. }
  2033. do {
  2034. let status = Status(rawValue: errSecTimestampUnacceptedPolicy)
  2035. XCTAssertEqual(status, .TimestampUnacceptedPolicy)
  2036. XCTAssertEqual(status?.description, "The requested policy is not supported by the Timestamp Authority.")
  2037. }
  2038. do {
  2039. let status = Status(rawValue: errSecTimestampUnacceptedExtension)
  2040. XCTAssertEqual(status, .TimestampUnacceptedExtension)
  2041. XCTAssertEqual(status?.description, "The requested extension is not supported by the Timestamp Authority.")
  2042. }
  2043. do {
  2044. let status = Status(rawValue: errSecTimestampAddInfoNotAvailable)
  2045. XCTAssertEqual(status, .TimestampAddInfoNotAvailable)
  2046. XCTAssertEqual(status?.description, "The additional information requested is not available.")
  2047. }
  2048. do {
  2049. let status = Status(rawValue: errSecTimestampSystemFailure)
  2050. XCTAssertEqual(status, .TimestampSystemFailure)
  2051. XCTAssertEqual(status?.description, "The timestamp request cannot be handled due to system failure.")
  2052. }
  2053. do {
  2054. let status = Status(rawValue: errSecSigningTimeMissing)
  2055. XCTAssertEqual(status, .SigningTimeMissing)
  2056. XCTAssertEqual(status?.description, "A signing time was expected but was not found.")
  2057. }
  2058. do {
  2059. let status = Status(rawValue: errSecTimestampRejection)
  2060. XCTAssertEqual(status, .TimestampRejection)
  2061. XCTAssertEqual(status?.description, "A timestamp transaction was rejected.")
  2062. }
  2063. do {
  2064. let status = Status(rawValue: errSecTimestampWaiting)
  2065. XCTAssertEqual(status, .TimestampWaiting)
  2066. XCTAssertEqual(status?.description, "A timestamp transaction is waiting.")
  2067. }
  2068. do {
  2069. let status = Status(rawValue: errSecTimestampRevocationWarning)
  2070. XCTAssertEqual(status, .TimestampRevocationWarning)
  2071. XCTAssertEqual(status?.description, "A timestamp authority revocation warning was issued.")
  2072. }
  2073. do {
  2074. let status = Status(rawValue: errSecTimestampRevocationNotification)
  2075. XCTAssertEqual(status, .TimestampRevocationNotification)
  2076. XCTAssertEqual(status?.description, "A timestamp authority revocation notification was issued.")
  2077. }
  2078. #endif
  2079. }
  2080. }