def test_functions(self): self.assertIsInstance(Security.SecCertificateGetTypeID(), int) self.assertResultHasType(Security.SecCertificateCreateWithData, objc._C_ID) self.assertResultIsCFRetained(Security.SecCertificateCreateWithData) self.assertArgHasType(Security.SecCertificateCreateWithData, 0, objc._C_ID) self.assertArgHasType(Security.SecCertificateCreateWithData, 1, objc._C_ID) self.assertResultHasType(Security.SecCertificateCopyData, objc._C_ID) self.assertResultIsCFRetained(Security.SecCertificateCopyData) self.assertArgHasType(Security.SecCertificateCopyData, 0, objc._C_ID) self.assertResultHasType(Security.SecCertificateCopySubjectSummary, objc._C_ID) self.assertResultIsCFRetained( Security.SecCertificateCopySubjectSummary) self.assertArgHasType(Security.SecCertificateCopySubjectSummary, 0, objc._C_ID) self.assertResultHasType(Security.SecCertificateCopyCommonName, objc._C_INT) self.assertArgHasType(Security.SecCertificateCopyCommonName, 0, objc._C_ID) self.assertArgHasType( Security.SecCertificateCopyCommonName, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SecCertificateCopyCommonName, 1) self.assertResultHasType(Security.SecCertificateCopyEmailAddresses, objc._C_INT) self.assertArgHasType(Security.SecCertificateCopyEmailAddresses, 0, objc._C_ID) self.assertArgHasType( Security.SecCertificateCopyEmailAddresses, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SecCertificateCopyEmailAddresses, 1) # "SEC_SUFFIX_LEGACYMAC" on arm64 self.assertResultHasType(Security.SecCertificateCopyPublicKey, objc._C_INT) self.assertArgHasType(Security.SecCertificateCopyPublicKey, 0, objc._C_ID) self.assertArgHasType( Security.SecCertificateCopyPublicKey, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SecCertificateCopyPublicKey, 1) # "SEC_SUFFIX_LEGACYMAC" on arm64 self.assertResultHasType(Security.SecCertificateCopySerialNumber, objc._C_ID) self.assertArgHasType(Security.SecCertificateCopySerialNumber, 0, objc._C_ID) self.assertArgHasType( Security.SecCertificateCopySerialNumber, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertResultHasType(Security.SecCertificateAddToKeychain, objc._C_INT) self.assertArgHasType(Security.SecCertificateAddToKeychain, 0, objc._C_ID) self.assertArgHasType(Security.SecCertificateAddToKeychain, 1, objc._C_ID) self.assertResultHasType(Security.SecCertificateCopyPreferred, objc._C_ID) self.assertArgHasType(Security.SecCertificateCopyPreferred, 0, objc._C_ID) self.assertArgHasType(Security.SecCertificateCopyPreferred, 1, objc._C_ID) self.assertResultHasType(Security.SecCertificateSetPreferred, objc._C_INT) self.assertArgHasType(Security.SecCertificateSetPreferred, 0, objc._C_ID) self.assertArgHasType(Security.SecCertificateSetPreferred, 1, objc._C_ID) self.assertArgHasType(Security.SecCertificateSetPreferred, 2, objc._C_ID) self.assertResultHasType(Security.SecCertificateCopyValues, objc._C_ID) self.assertResultIsCFRetained(Security.SecCertificateCopyValues) self.assertArgHasType(Security.SecCertificateCopyValues, 0, objc._C_ID) self.assertArgHasType(Security.SecCertificateCopyValues, 1, objc._C_ID) self.assertArgHasType(Security.SecCertificateCopyValues, 2, objc._C_OUT + objc._C_PTR + objc._C_ID) self.assertResultHasType(Security.SecCertificateCopyLongDescription, objc._C_ID) self.assertResultIsCFRetained( Security.SecCertificateCopyLongDescription) self.assertArgHasType(Security.SecCertificateCopyLongDescription, 0, objc._C_ID) self.assertArgHasType(Security.SecCertificateCopyLongDescription, 1, objc._C_ID) self.assertArgHasType( Security.SecCertificateCopyLongDescription, 2, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertResultHasType(Security.SecCertificateCopyShortDescription, objc._C_ID) self.assertResultIsCFRetained( Security.SecCertificateCopyShortDescription) self.assertArgHasType(Security.SecCertificateCopyShortDescription, 0, objc._C_ID) self.assertArgHasType(Security.SecCertificateCopyShortDescription, 1, objc._C_ID) self.assertArgHasType( Security.SecCertificateCopyShortDescription, 2, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertResultHasType( Security.SecCertificateCopyNormalizedIssuerContent, objc._C_ID) self.assertResultIsCFRetained( Security.SecCertificateCopyNormalizedIssuerContent) self.assertArgHasType( Security.SecCertificateCopyNormalizedIssuerContent, 0, objc._C_ID) self.assertArgHasType( Security.SecCertificateCopyNormalizedIssuerContent, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertResultHasType( Security.SecCertificateCopyNormalizedSubjectContent, objc._C_ID) self.assertResultIsCFRetained( Security.SecCertificateCopyNormalizedSubjectContent) self.assertArgHasType( Security.SecCertificateCopyNormalizedSubjectContent, 0, objc._C_ID) self.assertArgHasType( Security.SecCertificateCopyNormalizedSubjectContent, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertFalse(hasattr(Security, "SecCertificateCreateFromData")) self.assertFalse(hasattr(Security, "SecCertificateGetData")) self.assertFalse(hasattr(Security, "SecCertificateGetType")) self.assertFalse(hasattr(Security, "SecCertificateGetSubject")) self.assertFalse(hasattr(Security, "SecCertificateGetIssuer")) self.assertFalse(hasattr(Security, "SecCertificateGetCLHandle")) self.assertFalse(hasattr(Security, "SecCertificateGetAlgorithmID")) self.assertFalse(hasattr(Security, "SecCertificateCopyPreference")) self.assertFalse(hasattr(Security, "SecCertificateSetPreference"))