blob: 17e16c31bf3920e66f28832207634d5f24e3b4b2 [file] [log] [blame]
#
# Copyright 2019 NXP
# SPDX-License-Identifier: Apache-2.0
#
#
import os
import sys
from util import *
keyTypeMap = {
'prime192v1':'secp192r1',
'secp224r1':'secp224r1',
'prime256v1':'secp256r1',
'secp384r1':'secp384r1',
'secp521r1':'secp521r1',
'brainpoolP256r1':'brainpoolP256r1',
'brainpoolP384r1':'brainpoolP384r1',
'brainpoolP512r1':'brainpoolP512r1',
'secp192k1':'secp192k1',
'secp224k1':'secp224k1',
'secp256k1':'secp256k1',
'rsa2048':'',
'rsa3072':'',
'rsa4096':'',
}
def printUsage():
print('Invalid input argument')
print('Run as - start_dtls_server.py <keyType> <cipher_suite> <connection_string>')
print('supported key types -')
print(ecc_types)
print(rsa_types)
print('Example invocation - start_dtls_client.py prime256v1 TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA 127.0.0.1:8050')
print('Example invocation - start_dtls_client.py rsa2048 TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256 COM1')
print('Example invocation - start_dtls_client.py rsa2048 TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256 none')
sys.exit()
if len(sys.argv) != 4:
printUsage()
else:
cur_dir = os.path.abspath(os.path.dirname(__file__))
keytype = sys.argv[1]
cipher_suite = sys.argv[2];
connection_string = sys.argv[3];
if isValidKeyType(keytype) != True:
printUsage()
mbedtls_keyType = keyTypeMap[keytype]
curves = ""
if isValidECKeyType(keytype) == True:
curves = "curves=" + mbedtls_keyType
tls_rootCA = os.path.join(cur_dir, '..', 'keys', keytype, 'tls_rootca.cer')
mbedtls_client = os.path.join(cur_dir, '..', '..', '..', '..', 'tools', 'mbedtls_ex_sss_dtls_client')
run("%s exchanges=1 force_version=tls1_2 debug_level=1 ca_file=%s auth_mode=required key_file=none crt_file=none force_ciphersuite=%s %s %s"
%(mbedtls_client, tls_rootCA, cipher_suite, curves, connection_string))