File: https_cli.py

package info (click to toggle)
m2crypto 0.46.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,952 kB
  • sloc: python: 22,921; makefile: 213; ansic: 94; sh: 17
file content (48 lines) | stat: -rw-r--r-- 1,219 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python

from __future__ import print_function

"""Demonstrations of M2Crypto.httpslib.

Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved."""

import sys
from M2Crypto import Rand, SSL, httpslib, threading


def test_httpslib():
    ctx = SSL.Context("sslv23")
    ctx.load_cert_chain("client.pem")
    ctx.load_verify_locations("ca.pem", "")
    ctx.set_verify(SSL.verify_peer, 10)
    ctx.set_info_callback()
    h = httpslib.HTTPSConnection("localhost", 19443, ssl_context=ctx)
    h.set_debuglevel(1)
    h.putrequest("GET", "/")
    h.putheader("Accept", "text/html")
    h.putheader("Accept", "text/plain")
    h.putheader("Connection", "close")
    h.endheaders()
    resp = h.getresponse()
    f = resp.fp
    c = 0
    while 1:
        # Either of following two works.
        # data = f.readline(4096)
        data = resp.read(4096)
        if not data:
            break
        c = c + len(data)
        # print(data)
        sys.stdout.write(data)
        sys.stdout.flush()
    f.close()
    h.close()


if __name__ == "__main__":
    Rand.load_file("../randpool.dat", -1)
    # threading.init()
    test_httpslib()
    # threading.cleanup()
    Rand.save_file("../randpool.dat")