Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  tstclnt_arguments.py

  Sprache: Python
 

#!/usr/bin/env python
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.

import random
import string

ECH_CONFIGS = "AEX+DQBBcQAgACDh4IuiuhhInUcKZx5uYcehlG9PQ1ZlzhvVZyjJl7dscQAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="

VERSIONS = ["ssl3""tls1.0""tls1.1""tls1.2""tls1.3"]

NAMED_GROUPS = [
    "P256""P384""P521""x25519",
    "FF2048""FF3072""FF4096""FF6144""FF8192",
    "xyber76800""x25519mlkem768""secp256r1mlkem768",
    "secp384r1mlkem1024",
]

SIGNATURE_SCHEMES = [
    "rsa_pkcs1_sha1""rsa_pkcs1_sha256""rsa_pkcs1_sha384",
    "rsa_pkcs1_sha512""ecdsa_sha1""ecdsa_secp256r1_sha256",
    "ecdsa_secp384r1_sha384""ecdsa_secp521r1_sha512",
    "rsa_pss_rsae_sha256""rsa_pss_rsae_sha384""rsa_pss_rsae_sha512",
    "ed25519""ed448",
    "rsa_pss_pss_sha256""rsa_pss_pss_sha384""rsa_pss_pss_sha512",
    "dsa_sha1""dsa_sha256""dsa_sha384""dsa_sha512",
]

# Single-letter cipher codes accepted by tstclnt -c.
CIPHER_LETTERS = "cdeinopqrstuvwxyz"

# Hex cipher codes (TLS cipher suite values) for tstclnt -c.
CIPHER_HEX = [
    "C02B",  # TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    "C02C",  # TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    "C02F",  # TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    "C030",  # TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    "CCA8",  # TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
    "CCA9",  # TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
    "1301",  # TLS_AES_128_GCM_SHA256
    "1302",  # TLS_AES_256_GCM_SHA384
    "1303",  # TLS_CHACHA20_POLY1305_SHA256
]


def main():
    tls13_included = True

    # Restrict TLS version range.
    if random.randint(01):
        min_idx = random.randint(0, len(VERSIONS) - 1)
        max_idx = random.randint(min_idx, len(VERSIONS) - 1)
        tls13_included = max_idx == len(VERSIONS) - 1
        print(f"-V {VERSIONS[min_idx]}:{VERSIONS[max_idx]}")

    # Use Encrypted Client Hello with the given Base64-encoded ECHConfigs
    # or enable ECH GREASEing (mutually exclusive).
    ech_choice = random.randint(02)
    if ech_choice == 1:
        print(f"-N {ECH_CONFIGS}")
    elif ech_choice == 2:
        print(f"-i {random.randint(1, 255)}")

    # Configure a TLS 1.3 External PSK with the given hex string for a key.
    if random.randint(01):
        psk = f"0x{''.join(random.choices(string.hexdigits, k=16))}"
        if random.randint(01):
            label = "".join(
                random.choices(string.ascii_letters, k=random.randint(416))
            )
            psk += f":{label}"
        print(f"-z {psk}")

    # Restrict ciphers.
    if random.randint(01):
        cipher_str = ""
        if random.randint(01):
            letters = random.sample(
                CIPHER_LETTERS, k=random.randint(1, len(CIPHER_LETTERS))
            )
            cipher_str += "".join(letters)
        if random.randint(01):
            hexcodes = random.sample(
                CIPHER_HEX, k=random.randint(1, len(CIPHER_HEX))
            )
            cipher_str += "".join(f":{c}" for c in hexcodes)
        if cipher_str:
            print(f"-c {cipher_str}")

    # Comma-separated list of enabled groups for TLS key exchange.
    if random.randint(01):
        groups = random.sample(
            NAMED_GROUPS, k=random.randint(1, len(NAMED_GROUPS))
        )
        print(f"-I {','.join(groups)}")

    # Comma-separated list of signature schemes in preference order.
    if random.randint(01):
        schemes = random.sample(
            SIGNATURE_SCHEMES, k=random.randint(1, len(SIGNATURE_SCHEMES))
        )
        print(f"-J {','.join(schemes)}")

    # Enable the session ticket extension.
    if random.randint(01):
        print("-u")

    # Enable the cert_status extension (OCSP stapling).
    if random.randint(01):
        print("-T")

    # Enable the signed_certificate_timestamp extension.
    if random.randint(01):
        print("-U")

    # Enable the delegated credentials extension.
    if random.randint(01):
        print("-B")

    # Enable the extended master secret extension [RFC7627].
    if random.randint(01):
        print("-G")

    # Enable false start.
    if random.randint(01):
        print("-g")

    # Send TLS_FALLBACK_SCSV.
    if random.randint(01):
        print("-K")

    # Require the use of FFDHE supported groups [RFC7919].
    if random.randint(01):
        print("-H")

    # Allow 0-RTT data (TLS 1.3 only).
    if tls13_included and random.randint(01):
        print("-Z")

    # Enable middlebox compatibility mode (TLS 1.3 only).
    if tls13_included and random.randint(01):
        print("-e")

    # Enable post-handshake authentication (TLS 1.3 only).
    if tls13_included and random.randint(01):
        print("-E")

    # Renegotiate N times.
    if random.randint(01):
        print(f"-r {random.randint(1, 5)}")

    # Use DTLS instead of TLS.
    if random.randint(01):
        print("-P client")

    # Enable alt-server-hello mode.
    if random.randint(01):
        print("-X alt-server-hello")

    if random.randint(01):
        print("--enable-rfc8701-grease")

    if random.randint(01):
        print("--enable-ch-extension-permutation")

    if random.randint(01):
        print("--zlib-certificate-compression")


if __name__ == "__main__":
    main()

Messung V0.5 in Prozent
C=90 H=97 G=93

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=434850
#Domains=655579