Пример #1
0
    def test_functions(self):
        self.assertIsInstance(Security.SecTrustGetTypeID(), (int, long))

        self.assertResultHasType(Security.SecTrustCreateWithCertificates, objc._C_INT)
        self.assertArgHasType(Security.SecTrustCreateWithCertificates, 0, objc._C_ID)
        self.assertArgHasType(Security.SecTrustCreateWithCertificates, 1, objc._C_ID)
        self.assertArgHasType(
            Security.SecTrustCreateWithCertificates,
            2,
            objc._C_OUT + objc._C_PTR + objc._C_ID,
        )
        self.assertArgIsCFRetained(Security.SecTrustCreateWithCertificates, 2)

        self.assertResultHasType(Security.SecTrustSetPolicies, objc._C_INT)
        self.assertArgHasType(Security.SecTrustSetPolicies, 0, objc._C_ID)
        self.assertArgHasType(Security.SecTrustSetPolicies, 1, objc._C_ID)

        self.assertResultHasType(Security.SecTrustCopyPolicies, objc._C_INT)
        self.assertArgHasType(Security.SecTrustCopyPolicies, 0, objc._C_ID)
        self.assertArgHasType(
            Security.SecTrustCopyPolicies, 1, objc._C_OUT + objc._C_PTR + objc._C_ID
        )
        self.assertArgIsCFRetained(Security.SecTrustCopyPolicies, 1)

        self.assertResultHasType(Security.SecTrustSetAnchorCertificates, objc._C_INT)
        self.assertArgHasType(Security.SecTrustSetAnchorCertificates, 0, objc._C_ID)
        self.assertArgHasType(Security.SecTrustSetAnchorCertificates, 1, objc._C_ID)

        self.assertResultHasType(
            Security.SecTrustSetAnchorCertificatesOnly, objc._C_INT
        )
        self.assertArgHasType(Security.SecTrustSetAnchorCertificatesOnly, 0, objc._C_ID)
        self.assertArgHasType(
            Security.SecTrustSetAnchorCertificatesOnly, 1, objc._C_NSBOOL
        )

        self.assertResultHasType(
            Security.SecTrustCopyCustomAnchorCertificates, objc._C_INT
        )
        self.assertArgHasType(
            Security.SecTrustCopyCustomAnchorCertificates, 0, objc._C_ID
        )
        self.assertArgHasType(
            Security.SecTrustCopyCustomAnchorCertificates,
            1,
            objc._C_OUT + objc._C_PTR + objc._C_ID,
        )
        self.assertArgIsCFRetained(Security.SecTrustCopyCustomAnchorCertificates, 1)

        self.assertResultHasType(Security.SecTrustSetVerifyDate, objc._C_INT)
        self.assertArgHasType(Security.SecTrustSetVerifyDate, 0, objc._C_ID)
        self.assertArgHasType(Security.SecTrustSetVerifyDate, 1, objc._C_ID)

        self.assertResultHasType(Security.SecTrustGetVerifyTime, objc._C_DBL)
        self.assertArgHasType(Security.SecTrustGetVerifyTime, 0, objc._C_ID)

        self.assertResultHasType(Security.SecTrustSetKeychains, objc._C_INT)
        self.assertArgHasType(Security.SecTrustSetKeychains, 0, objc._C_ID)
        self.assertArgHasType(Security.SecTrustSetKeychains, 1, objc._C_ID)

        self.assertFalse(hasattr(Security, "SecTrustSetParameters"))
        self.assertFalse(hasattr(Security, "SecTrustGetResult"))
        self.assertFalse(hasattr(Security, "SecTrustGetCssmResult"))
        self.assertFalse(hasattr(Security, "SecTrustGetCssmResultCode"))
        self.assertFalse(hasattr(Security, "SecTrustGetTPHandle"))

        self.assertResultHasType(Security.SecTrustCopyAnchorCertificates, objc._C_INT)
        self.assertArgHasType(
            Security.SecTrustCopyAnchorCertificates,
            0,
            objc._C_OUT + objc._C_PTR + objc._C_ID,
        )
        self.assertArgIsCFRetained(Security.SecTrustCopyAnchorCertificates, 0)