xref: /aosp_15_r20/external/scapy/test/tls/example_client.py (revision 7dc08ffc4802948ccbc861daaf1e81c405c2c4bd)
1*7dc08ffcSJunyu Lai#!/usr/bin/env python
2*7dc08ffcSJunyu Lai
3*7dc08ffcSJunyu Lai## This file is part of Scapy
4*7dc08ffcSJunyu Lai## This program is published under a GPLv2 license
5*7dc08ffcSJunyu Lai
6*7dc08ffcSJunyu Lai"""
7*7dc08ffcSJunyu LaiBasic TLS client. A ciphersuite may be commanded via a first argument.
8*7dc08ffcSJunyu LaiDefault protocol version is TLS 1.2.
9*7dc08ffcSJunyu Lai
10*7dc08ffcSJunyu LaiFor instance, "sudo ./client_simple.py c014" will try to connect to any TLS
11*7dc08ffcSJunyu Laiserver at 127.0.0.1:4433, with suite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.
12*7dc08ffcSJunyu Lai"""
13*7dc08ffcSJunyu Lai
14*7dc08ffcSJunyu Laiimport os
15*7dc08ffcSJunyu Laiimport sys
16*7dc08ffcSJunyu Lai
17*7dc08ffcSJunyu Laibasedir = os.path.abspath(os.path.join(os.path.dirname(__file__),"../../"))
18*7dc08ffcSJunyu Laisys.path=[basedir]+sys.path
19*7dc08ffcSJunyu Lai
20*7dc08ffcSJunyu Laifrom scapy.layers.tls.automaton_cli import TLSClientAutomaton
21*7dc08ffcSJunyu Laifrom scapy.layers.tls.handshake import TLSClientHello
22*7dc08ffcSJunyu Lai
23*7dc08ffcSJunyu Lai
24*7dc08ffcSJunyu Laiif len(sys.argv) == 2:
25*7dc08ffcSJunyu Lai    ch = TLSClientHello(ciphers=int(sys.argv[1], 16))
26*7dc08ffcSJunyu Laielse:
27*7dc08ffcSJunyu Lai    ch = None
28*7dc08ffcSJunyu Lai
29*7dc08ffcSJunyu Lait = TLSClientAutomaton(client_hello=ch,
30*7dc08ffcSJunyu Lai                       version="tls13-d18",
31*7dc08ffcSJunyu Lai                       mycert=basedir+"/test/tls/pki/cli_cert.pem",
32*7dc08ffcSJunyu Lai                       mykey=basedir+"/test/tls/pki/cli_key.pem")
33*7dc08ffcSJunyu Lait.run()
34*7dc08ffcSJunyu Lai
35