def test_functions(self): self.assertIsInstance(Security.SSLContextGetTypeID(), int) self.assertFalse(hasattr(Security, "SSLNewContext")) self.assertFalse(hasattr(Security, "SSLDisposeContext")) self.assertResultHasType(Security.SSLGetSessionState, objc._C_INT) self.assertArgHasType(Security.SSLGetSessionState, 0, objc._C_ID) self.assertArgHasType(Security.SSLGetSessionState, 1, objc._C_OUT + objc._C_PTR + objc._C_INT) self.assertResultHasType(Security.SSLSetIOFuncs, objc._C_INT) self.assertArgHasType(Security.SSLSetIOFuncs, 0, objc._C_ID) self.assertArgIsFunction(Security.SSLSetIOFuncs, 1, SSLReadFunc, True) self.assertArgIsFunction(Security.SSLSetIOFuncs, 2, SSLWriteFunc, True) self.assertResultHasType(Security.SSLSetCertificate, objc._C_INT) self.assertArgHasType(Security.SSLSetCertificate, 0, objc._C_ID) self.assertArgHasType(Security.SSLSetCertificate, 1, objc._C_ID) self.assertResultHasType(Security.SSLSetConnection, objc._C_INT) self.assertArgHasType(Security.SSLSetConnection, 0, objc._C_ID) self.assertArgHasType(Security.SSLSetConnection, 1, objc._C_ID) self.assertResultHasType(Security.SSLGetConnection, objc._C_INT) self.assertArgHasType(Security.SSLGetConnection, 0, objc._C_ID) self.assertArgHasType(Security.SSLGetConnection, 1, objc._C_OUT + objc._C_PTR + objc._C_ID) self.assertResultHasType(Security.SSLSetPeerDomainName, objc._C_INT) self.assertArgHasType(Security.SSLSetPeerDomainName, 0, objc._C_ID) self.assertArgHasType( Security.SSLSetPeerDomainName, 1, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SSLSetPeerDomainName, 1, 2) self.assertArgHasType(Security.SSLSetPeerDomainName, 2, objc._C_ULNG) self.assertResultHasType(Security.SSLGetPeerDomainNameLength, objc._C_INT) self.assertArgHasType(Security.SSLGetPeerDomainNameLength, 0, objc._C_ID) self.assertArgHasType( Security.SSLGetPeerDomainNameLength, 1, objc._C_OUT + objc._C_PTR + objc._C_ULNG, ) self.assertResultHasType(Security.SSLGetPeerDomainName, objc._C_INT) self.assertArgHasType(Security.SSLGetPeerDomainName, 0, objc._C_ID) self.assertArgHasType( Security.SSLGetPeerDomainName, 1, objc._C_OUT + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SSLGetPeerDomainName, 1, 2) self.assertArgHasType(Security.SSLGetPeerDomainName, 2, objc._C_INOUT + objc._C_PTR + objc._C_ULNG) self.assertResultHasType(Security.SSLGetNegotiatedProtocolVersion, objc._C_INT) self.assertArgHasType(Security.SSLGetNegotiatedProtocolVersion, 0, objc._C_ID) self.assertArgHasType( Security.SSLGetNegotiatedProtocolVersion, 1, objc._C_OUT + objc._C_PTR + objc._C_INT, ) self.assertResultHasType(Security.SSLGetNumberSupportedCiphers, objc._C_INT) self.assertArgHasType(Security.SSLGetNumberSupportedCiphers, 0, objc._C_ID) self.assertArgHasType( Security.SSLGetNumberSupportedCiphers, 1, objc._C_OUT + objc._C_PTR + objc._C_ULNG, ) self.assertResultHasType(Security.SSLGetSupportedCiphers, objc._C_INT) self.assertArgHasType(Security.SSLGetSupportedCiphers, 0, objc._C_ID) self.assertArgHasType(Security.SSLGetSupportedCiphers, 1, objc._C_OUT + objc._C_PTR + objc._C_INT) self.assertArgSizeInArg(Security.SSLGetSupportedCiphers, 1, 2) self.assertArgHasType( Security.SSLGetSupportedCiphers, 2, objc._C_INOUT + objc._C_PTR + objc._C_ULNG, ) self.assertResultHasType(Security.SSLSetEnabledCiphers, objc._C_INT) self.assertArgHasType(Security.SSLSetEnabledCiphers, 0, objc._C_ID) self.assertArgHasType(Security.SSLSetEnabledCiphers, 1, objc._C_IN + objc._C_PTR + objc._C_INT) self.assertArgSizeInArg(Security.SSLSetEnabledCiphers, 1, 2) self.assertArgHasType(Security.SSLSetEnabledCiphers, 2, objc._C_ULNG) self.assertResultHasType(Security.SSLGetNumberEnabledCiphers, objc._C_INT) self.assertArgHasType(Security.SSLGetNumberEnabledCiphers, 0, objc._C_ID) self.assertArgHasType( Security.SSLGetNumberEnabledCiphers, 1, objc._C_OUT + objc._C_PTR + objc._C_ULNG, ) self.assertResultHasType(Security.SSLGetEnabledCiphers, objc._C_INT) self.assertArgHasType(Security.SSLGetEnabledCiphers, 0, objc._C_ID) self.assertArgHasType(Security.SSLGetEnabledCiphers, 1, objc._C_OUT + objc._C_PTR + objc._C_INT) self.assertArgSizeInArg(Security.SSLGetEnabledCiphers, 1, 2) self.assertArgHasType(Security.SSLGetEnabledCiphers, 2, objc._C_INOUT + objc._C_PTR + objc._C_ULNG) self.assertFalse(hasattr(Security, "SSLSetProtocolVersionEnabled")) self.assertFalse(hasattr(Security, "SSLGetProtocolVersionEnabled")) self.assertFalse(hasattr(Security, "SSLSetProtocolVersion")) self.assertFalse(hasattr(Security, "SSLGetProtocolVersion")) self.assertFalse(hasattr(Security, "SSLSetEnableCertVerify")) self.assertFalse(hasattr(Security, "SSLGetEnableCertVerify")) self.assertFalse(hasattr(Security, "SSLSetAllowsExpiredCerts")) self.assertFalse(hasattr(Security, "SSLGetAllowsExpiredCerts")) self.assertFalse(hasattr(Security, "SSLSetAllowsExpiredRoots")) self.assertFalse(hasattr(Security, "SSLGetAllowsExpiredRoots")) self.assertFalse(hasattr(Security, "SSLSetAllowsAnyRoot")) self.assertFalse(hasattr(Security, "SSLGetAllowsAnyRoot")) self.assertFalse(hasattr(Security, "SSLSetTrustedRoots")) self.assertFalse(hasattr(Security, "SSLCopyTrustedRoots")) self.assertFalse(hasattr(Security, "SSLCopyPeerCertificates")) self.assertResultHasType(Security.SSLSetPeerID, objc._C_INT) self.assertArgHasType(Security.SSLSetPeerID, 0, objc._C_ID) self.assertArgHasType(Security.SSLSetPeerID, 1, objc._C_IN + objc._C_PTR + objc._C_VOID) self.assertArgSizeInArg(Security.SSLSetPeerID, 1, 2) self.assertArgHasType(Security.SSLSetPeerID, 2, objc._C_ULNG) self.assertResultHasType(Security.SSLGetPeerID, objc._C_INT) self.assertArgHasType(Security.SSLGetPeerID, 0, objc._C_ID) self.assertArgHasType(Security.SSLGetPeerID, 1, objc._C_OUT + objc._C_PTR + objc._C_VOID) self.assertArgSizeInArg(Security.SSLGetPeerID, 1, 2) self.assertArgHasType(Security.SSLGetPeerID, 2, objc._C_INOUT + objc._C_PTR + objc._C_ULNG) self.assertResultHasType(Security.SSLGetNegotiatedCipher, objc._C_INT) self.assertArgHasType(Security.SSLGetNegotiatedCipher, 0, objc._C_ID) self.assertArgHasType(Security.SSLGetNegotiatedCipher, 1, objc._C_OUT + objc._C_PTR + objc._C_INT) self.assertResultHasType(Security.SSLSetClientSideAuthenticate, objc._C_INT) self.assertArgHasType(Security.SSLSetClientSideAuthenticate, 0, objc._C_ID) self.assertArgHasType(Security.SSLSetClientSideAuthenticate, 1, objc._C_INT) self.assertResultHasType(Security.SSLAddDistinguishedName, objc._C_INT) self.assertArgHasType(Security.SSLAddDistinguishedName, 0, objc._C_ID) self.assertArgHasType(Security.SSLAddDistinguishedName, 1, objc._C_IN + objc._C_PTR + objc._C_VOID) self.assertArgSizeInArg(Security.SSLAddDistinguishedName, 1, 2) self.assertArgHasType(Security.SSLAddDistinguishedName, 2, objc._C_ULNG) self.assertResultHasType(Security.SSLSetCertificateAuthorities, objc._C_INT) self.assertArgHasType(Security.SSLSetCertificateAuthorities, 0, objc._C_ID) self.assertArgHasType(Security.SSLSetCertificateAuthorities, 1, objc._C_ID) self.assertArgHasType(Security.SSLSetCertificateAuthorities, 2, objc._C_NSBOOL) self.assertResultHasType(Security.SSLCopyCertificateAuthorities, objc._C_INT) self.assertArgHasType(Security.SSLCopyCertificateAuthorities, 0, objc._C_ID) self.assertArgHasType( Security.SSLCopyCertificateAuthorities, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SSLCopyCertificateAuthorities, 1) self.assertResultHasType(Security.SSLCopyDistinguishedNames, objc._C_INT) self.assertArgHasType(Security.SSLCopyDistinguishedNames, 0, objc._C_ID) self.assertArgHasType( Security.SSLCopyDistinguishedNames, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SSLCopyDistinguishedNames, 1) self.assertResultHasType(Security.SSLGetClientCertificateState, objc._C_INT) self.assertArgHasType(Security.SSLGetClientCertificateState, 0, objc._C_ID) self.assertArgHasType( Security.SSLGetClientCertificateState, 1, objc._C_OUT + objc._C_PTR + objc._C_INT, ) self.assertResultHasType(Security.SSLSetDiffieHellmanParams, objc._C_INT) self.assertArgHasType(Security.SSLSetDiffieHellmanParams, 0, objc._C_ID) self.assertArgHasType( Security.SSLSetDiffieHellmanParams, 1, objc._C_IN + objc._C_PTR + objc._C_VOID, ) self.assertArgSizeInArg(Security.SSLSetDiffieHellmanParams, 1, 2) self.assertArgHasType(Security.SSLSetDiffieHellmanParams, 2, objc._C_ULNG) self.assertResultHasType(Security.SSLGetDiffieHellmanParams, objc._C_INT) self.assertArgHasType(Security.SSLGetDiffieHellmanParams, 0, objc._C_ID) self.assertArgHasType( Security.SSLGetDiffieHellmanParams, 1, objc._C_OUT + objc._C_PTR + objc._C_VOID, ) self.assertArgSizeInArg(Security.SSLGetDiffieHellmanParams, 1, 2) self.assertArgHasType( Security.SSLGetDiffieHellmanParams, 2, objc._C_INOUT + objc._C_PTR + objc._C_ULNG, ) self.assertFalse(hasattr(Security, "SSLSetRsaBlinding")) self.assertFalse(hasattr(Security, "SSLGetRsaBlinding")) self.assertResultHasType(Security.SSLHandshake, objc._C_INT) self.assertArgHasType(Security.SSLHandshake, 0, objc._C_ID) self.assertResultHasType(Security.SSLWrite, objc._C_INT) self.assertArgHasType(Security.SSLWrite, 0, objc._C_ID) self.assertArgHasType(Security.SSLWrite, 1, objc._C_IN + objc._C_PTR + objc._C_VOID) self.assertArgSizeInArg(Security.SSLWrite, 1, 2) self.assertArgHasType(Security.SSLWrite, 2, objc._C_ULNG) self.assertArgHasType(Security.SSLWrite, 3, objc._C_OUT + objc._C_PTR + objc._C_ULNG) self.assertResultHasType(Security.SSLRead, objc._C_INT) self.assertArgHasType(Security.SSLRead, 0, objc._C_ID) self.assertArgHasType(Security.SSLRead, 1, objc._C_OUT + objc._C_PTR + objc._C_VOID) self.assertArgSizeInArg(Security.SSLRead, 1, (2, 3)) self.assertArgHasType(Security.SSLRead, 2, objc._C_ULNG) self.assertArgHasType(Security.SSLRead, 3, objc._C_OUT + objc._C_PTR + objc._C_ULNG) self.assertResultHasType(Security.SSLGetBufferedReadSize, objc._C_INT) self.assertArgHasType(Security.SSLGetBufferedReadSize, 0, objc._C_ID) self.assertArgHasType(Security.SSLGetBufferedReadSize, 1, objc._C_OUT + objc._C_PTR + objc._C_ULNG) self.assertResultHasType(Security.SSLClose, objc._C_INT) self.assertArgHasType(Security.SSLClose, 0, objc._C_ID)