File: get_https.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 (36 lines) | stat: -rwxr-xr-x 910 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
#!/usr/bin/env python

from __future__ import print_function

"""Demonstrations of M2Crypto.httpslib.

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

Portions created by Open Source Applications Foundation (OSAF) are
Copyright (C) 2006 OSAF. All Rights Reserved.
"""

from M2Crypto import Rand, SSL, httpslib


def get_https():
    ctx = SSL.Context()
    if ctx.load_verify_locations("ca.pem") != 1:
        raise Exception("CA certificates not loaded")
    ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, 9)
    h = httpslib.HTTPSConnection("localhost", 9443, ssl_context=ctx)
    h.set_debuglevel(1)
    h.putrequest("GET", "/")
    h.endheaders()
    resp = h.getresponse()
    while 1:
        data = resp.read()
        if not data:
            break
        print(data)
    h.close()


Rand.load_file("../randpool.dat", -1)
get_https()
Rand.save_file("../randpool.dat")