# A reasonable default for today's standards. For F21 it should provide
# 80-bit security and will include for compatibility and as fallback the RC4
# cipher which is known to be broken.

# MACs: SHA1+
# Curves: All supported
# Signature algorithms: must use SHA-1 hash or better
# Ciphers: AES-GCM, AES-CCM, AES-CBC, CAMELLIA-GCM, CAMELLIA-CBC, 3DES-CBC
# Key exchange: ECDHE, RSA, DHE
# DH params size: 1023+
# RSA params size: 1023+
# Protocols: All supported (TLS1.0+)

CONFIG_GNUTLS="$(cat <<EOF
SYSTEM=NONE:+VERS-TLS-ALL:-VERS-SSL3.0:\
+AEAD:+SHA1:+SHA256:+SHA384:+ECDHE-RSA:+ECDHE-ECDSA:+RSA:+DHE-RSA:+DHE-DSS:\
+AES-256-GCM:+AES-256-CCM:+AES-256-CBC:+CAMELLIA-256-GCM:+CAMELLIA-256-CBC:\
+AES-128-GCM:+AES-128-CCM:+AES-128-CBC:+CAMELLIA-128-GCM:+CAMELLIA-128-CBC:\
+3DES-CBC:+SIGN-ALL:-SIGN-RSA-MD5:+CURVE-ALL:+COMP-NULL:%PROFILE_LOW
EOF
)"

CONFIG_GNUTLS28="$(cat <<EOF
SYSTEM=NONE:+VERS-TLS-ALL:-VERS-SSL3.0:\
+AEAD:+SHA1:+SHA256:+SHA384:+ECDHE-RSA:+ECDHE-ECDSA:+RSA:+DHE-RSA:+DHE-DSS:\
+AES-256-GCM:+AES-256-CBC:+CAMELLIA-256-GCM:+CAMELLIA-256-CBC:\
+AES-128-GCM:+AES-128-CBC:+CAMELLIA-128-GCM:+CAMELLIA-128-CBC:\
+3DES-CBC:+SIGN-ALL:-SIGN-RSA-MD5:+CURVE-ALL:+COMP-NULL:%PROFILE_LOW
EOF
)"

# We cannot limit the TLS version number in openssl, thus we cannot disable
# SSL 3.0, nor specify minimum sizes for DH or RSA parameters.
CONFIG_OPENSSL="$(cat <<EOF
!SSLv2:kEECDH:kRSA:kEDH:kPSK:+3DES:!aNULL:!eNULL:!MD5:!EXP:!RC4:!SEED:!IDEA:!DES
EOF
)"


# Configuration for Bind
CONFIG_BIND="$(cat <<EOF
disable-algorithms "."  {
RSAMD5;
};
EOF
)"


# Configuration for Java
CONFIG_JAVA="$(cat <<EOF
jdk.tls.ephemeralDHKeySize=1023
jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1023
jdk.tls.disabledAlgorithms=SSLv2, SSLv3, DH keySize < 1023, HmacMD5, RSA_EXPORT, DH_RSA, DH_DSS, DH_ANON, \
RC4_128, RC4_40, DES_CBC, DES40_CBC, RC2
jdk.tls.legacyAlgorithms=
EOF
)"

# Configuration for libkrb5
CONFIG_KRB5="$(cat <<EOF
# This file is automatically generated by update-crypto-policies.
permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 camellia256-cts-cmac camellia128-cts-cmac
EOF
)"

# Configuration for NSS
# Options documented at: https://dxr.mozilla.org/mozilla-central/source/security/nss/tests/ssl/sslpolicy.txt

CONFIG_NSS="$(cat <<EOF
#
# To change configuration change only the config= line. The rest
# allows NSS to handle this stanza as a strictly policy config stanza
# and not try to load any additional parameters.
#
library=
name=Policy
NSS=flags=policyOnly,moduleDB
config="disallow=ALL \
allow=tls-version-min=tls1.0:dtls-version-min=dtls1.0:\
aes256-gcm:aes128-gcm:aes256-cbc:aes128-cbc:camellia128-cbc:camellia256-cbc:\
des-ede3-cbc:ECDHE-RSA:ECDHE-ECDSA:RSA:DHE-RSA:DHE-DSS:RSA-MIN=1023:DH-MIN=1023:DSA-MIN=1023:HMAC-SHA1:HMAC-SHA224:HMAC-SHA256:\
HMAC-SHA384:HMAC-SHA512:SECP256R1:SECP384R1:SECP521R1:SHA512:SHA384:SHA256:SHA224:SHA1"

# The space above is critical and must be there.
#
EOF
)"
