Пример #1
0
    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"))