예제 #1
0
    def test_get_cbt_fail_invalid_raw_socket(self, mocker):
        response = mocker.MagicMock()
        response.raw = HTTPResponse()

        expected_warning = "Failed to get raw socket for CBT from urllib3 resp"

        with warnings.catch_warnings(record=True) as w:
            actual = HTTPNegotiateAuth._get_cbt_data(response)
            assert actual is None
            assert expected_warning in str(w[-1].message)
예제 #2
0
    def test_get_cbt_fail_not_urllib3(self, mocker):
        response = mocker.MagicMock()

        with warnings.catch_warnings(record=True) as w:
            warnings.simplefilter("always")
            actual = HTTPNegotiateAuth._get_cbt_data(response)
            assert actual is None
            assert (str(w[-1].message) ==
                    "Requests is running with a non urllib3 backend, cannot "
                    "retrieve server cert for CBT. Raw type: MagicMock")
예제 #3
0
    def test_get_cbt_no_peer_cert(self, mocker):
        mock_socket = mocker.MagicMock()
        mock_socket.getpeercert.side_effect = AttributeError

        raw_response = HTTPResponse()
        raw_response._fp = mocker.MagicMock()
        raw_response._fp.fp.raw._sock = mock_socket
        raw_response._fp.fp._sock = mock_socket

        response = mocker.MagicMock()
        response.raw = raw_response

        actual = HTTPNegotiateAuth._get_cbt_data(response)
        assert actual is None
예제 #4
0
    def test_get_cbt_with_peer_cert(self, mocker):
        cert_der = (b"MIIDGzCCAgOgAwIBAgIQWkeAtqoFg6pNWF7xC4YXhTANBgkqhkiG9w0"
                    b"BAQsFADAVMRMwEQYDVQQDDApTRVJWRVIyMDE2MB4XDTE3MDUyNzA5MD"
                    b"I0NFoXDTE4MDUyNzA5MjI0NFowFTETMBEGA1UEAwwKU0VSVkVSMjAxN"
                    b"jCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALIPKM5uykFy"
                    b"NmVoLyvPSXGk15ZDqjYi3AbUxVFwCkVImqhefLATit3PkTUYFtAT+TC"
                    b"AwK2E4lOu1XHM+Tmp2KIOnq2oUR8qMEvfxYThEf1MHxkctFljFssZ9N"
                    b"vASDD4lzw8r0Bhl+E5PhR22Eu1Wago5bvIldojkwG+WBxPQv3ZR546L"
                    b"MUZNaBXC0RhuGj5w83lbVz75qM98wvv1ekfZYAP7lrVyHxqCTPDomEU"
                    b"I45tQQZHCZl5nRx1fPCyyYfcfqvFlLWD4Q3PZAbnw6mi0MiWJbGYKME"
                    b"1XGicjqyn/zM9XKA1t/JzChS2bxf6rsyA9I7ibdRHUxsm1JgKry2jfW"
                    b"0CAwEAAaNnMGUwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGA"
                    b"QUFBwMCBggrBgEFBQcDATAVBgNVHREEDjAMggpTRVJWRVIyMDE2MB0G"
                    b"A1UdDgQWBBQabLGWg1sn7AXPwYPyfE0ER921ZDANBgkqhkiG9w0BAQs"
                    b"FAAOCAQEAnRohyl6ZmOsTWCtxOJx5A8yr//NweXKwWWmFQXRmCb4bMC"
                    b"xhD4zqLDf5P6RotGV0I/SHvqz+pAtJuwmr+iyAF6WTzo3164LCfnQEu"
                    b"psfrrfMkf3txgDwQkA0oPAw3HEwOnR+tzprw3Yg9x6UoZEhi4XqP9AX"
                    b"R49jU92KrNXJcPlz5MbkzNo5t9nr2f8q39b5HBjaiBJxzdM1hxqsbfD"
                    b"KirTYbkUgPlVOo/NDmopPPb8IX8ubj/XETZG2jixD0zahgcZ1vdr/iZ"
                    b"+50WSXKN2TAKBO2fwoK+2/zIWrGRxJTARfQdF+fGKuj+AERIFNh88HW"
                    b"xSDYjHQAaFMcfdUpa9GGQ==")
        cert_der = base64.b64decode(cert_der)

        mock_socket = mocker.MagicMock()
        mock_socket.getpeercert.return_value = cert_der

        raw_response = HTTPResponse()
        raw_response._fp = mocker.MagicMock()
        raw_response._fp.fp.raw._sock = mock_socket
        raw_response._fp.fp._sock = mock_socket

        response = mocker.MagicMock()
        response.raw = raw_response

        expected = (b"tls-server-end-point:"
                    b"\x99\x6F\x3E\xEA\x81\x2C\x18\x70\xE3\x05\x49\xFF"
                    b"\x9B\x86\xCD\x87\xA8\x90\xB6\xD8\xDF\xDF\x4A\x81"
                    b"\xBE\xF9\x67\x59\x70\xDA\xDB\x26")
        actual = HTTPNegotiateAuth._get_cbt_data(response)
        assert actual == expected