3 ."dS@s ddlmZGdddeZdS))ConfigGeneratorc@seZdZdZdddhZddddd d d d d ddd ZdddddddddddddddddddddddZdddZdd d!d"d#d$d%d&dddd' Zd(dddd)Z d*d+d,d-d.ddd/Z dd0d1d2d3d4d5Z e d6d7Z e d8d9Zd:S); JavaGeneratorjavaZtlsZsslzjava-tlsMD2MD5SHA1ZSHA224ZSHA256ZSHA384ZSHA512ZSHA3_256ZSHA3_384ZSHA3_512) rrrzSHA2-224zSHA2-256zSHA2-384zSHA2-512zSHA3-256zSHA3-384zSHA3-512ZGOSTZ AES_256_CBCZ AES_128_CBCZ AES_256_GCMZ AES_128_GCMZ AES_256_CCMZ AES_128_CCMZRC4_128ZRC4_40ZRC2ZDES_CBCZ DES40_CBCZ 3DES_EDE_CBC)z AES-256-CTRz AES-128-CTRzCHACHA20-POLY1305zCAMELLIA-256-GCMzCAMELLIA-128-GCMzCAMELLIA-256-CBCzCAMELLIA-128-CBCz AES-256-CBCz AES-128-CBCz AES-256-GCMz AES-128-GCMz AES-256-CCMz AES-128-CCMzRC4-128zRC4-40zRC2-CBCzDES-CBCz DES40-CBCz3DES-CBCzSEED-CBCzIDEA-CBCZNULL)zRC4-128z3DES-CBCzHRSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORTzDH_RSA, DH_DSSzDH_anon, ECDH_anonzTLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256ZDHE_RSAZDHE_DSSECDHEECDH) ZEXPORTZDHZANONZRSAzDHE-RSAzDHE-DSSr r ZPSKzDHE-PSKz ECDHE-PSKZDSA)zDSA-SHA1zRSA-SHA1z ECDSA-SHA1zRSA-MD5ZSSLv2ZSSLv3ZTLSv1zTLSv1.1zTLSv1.2)zSSL2.0zSSL3.0zTLS1.0zTLS1.1zTLS1.2zDTLS1.0zDTLS1.2ZHmacMD5ZHmacSHA1Z HmacSHA256Z HmacSHA384Z HmacSHA512)ZAEADzHMAC-MD5z HMAC-SHA1z HMAC-SHA2-256z HMAC-SHA2-384z HMAC-SHA2-512c Cs|j}|j}d}dt|jdd}|d7}d}|j|d|}x>|dD]2}y|j||j||}WqJtk rzYqJXqJWx>|d D]2}y|j||j||}Wqtk rYqXqW|j|d t|jd |}||7}|d 7}d}|j|d t|jd|}xB|dD]6}y|j||j||}Wntk rHYnXqWxB|dD]6}y|j||j ||}Wntk rYnXqZWxB|dD]6}y|j||j ||}Wntk rYnXqWxB|dD]6}y|j||j ||}Wntk rYnXqW||7}|d7}d}xB|dD]6}y|j||j ||}Wntk rlYnXq:W||7}|d7}|S)Nz, zjdk.tls.ephemeralDHKeySize=Z min_dh_size z jdk.certpath.disabledAlgorithms=rrhashZsignzRSA keySize < Z min_rsa_sizez jdk.tls.disabledAlgorithms=z DH keySize < ZprotocolZ key_exchangeZcipherZmacz jdk.tls.legacyAlgorithms=) ZenabledZdisabledstrZintegersappend hash_not_mapKeyError sign_not_mapprotocol_not_mapkey_exchange_not_mapcipher_not_map mac_not_mapcipher_legacy_map)clsZpolicypZipsepZcfgsir;./usr/share/crypto-policies/python/policygenerators/java.pygenerate_configbsj       zJavaGenerator.generate_configcCsdS)NTr)rconfigrrr test_configszJavaGenerator.test_configN)__name__ __module__ __qualname__Z CONFIG_NAMEZSCOPESrrrrrrr classmethodrr rrrrr s  GrN)Zconfiggeneratorrrrrrrs