(mozilla-projects-nss-nss-config-options)=

# NSS Config Options

(nss-config-options-format)=

## \` NSS Config Options Format \<#nss_config_options_format>\`\_\_

:::{container}
The specified ciphers will be allowed by policy, but an application may allow more by policy
explicitly:

```{code}
config="allow=curve1:curve2:hash1:hash2:rsa-1024..."
```

Only the specified hashes and curves will be allowed:

```{code}
config="disallow=all allow=sha1:sha256:secp256r1:secp384r1"
```

Only the specified hashes and curves will be allowed, and RSA keys of 2048 or more will be
accepted, and DH key exchange with 1024-bit primes or more:

```{code}
config="disallow=all allow=sha1:sha256:secp256r1:secp384r1:min-rsa=2048:min-dh=1024"
```

A policy that enables the AES ciphersuites and the SECP256/384 curves:

```{code}
config="allow=aes128-cbc:aes128-gcm::HMAC-SHA1:SHA1:SHA256:SHA384:RSA:ECDHE-RSA:SECP256R1:SECP384R1"
```

Turn off md5

```{code}
config="disallow=MD5"
```

Turn off md5 and sha1 only for SSL

```{code}
config="disallow=MD5(SSL):SHA1(SSL)"
```

Disallow values are parsed first, and then allow values, independent of the order in which they
appear.

```{code}
Future key words (not yet implemented):
enable: turn on ciphersuites by default.
disable: turn off ciphersuites by default without disallowing them by policy.
flags: turn on the following flags:
     ssl-lock: turn off the ability for applications to change policy with
               the SSL_SetCipherPolicy (or SSL_SetPolicy).
     policy-lock: turn off the ability for applications to change policy with
               the call NSS_SetAlgorithmPolicy.
     ssl-default-lock: turn off the ability for applications to change cipher
               suite states with SSL_EnableCipher, SSL_DisableCipher.
```

```{rubric} ECC Curves
:name: ecc_curves
```

PRIME192V1

PRIME192V2

PRIME192V3

PRIME239V1

PRIME239V2

PRIME239V3

PRIME256V1

SECP112R1

SECP112R2

SECP128R1

SECP128R2

SECP160K1

SECP160R1

SECP160R2

SECP192K1

SECP192R1

SECP224K1

SECP256K1

SECP256R1

SECP384R1

SECP521R1

C2PNB163V1

C2PNB163V2

C2PNB163V3

C2PNB176V1

C2TNB191V1

C2TNB191V2

C2TNB191V3

C2ONB191V4

C2ONB191V5

C2PNB208W1

C2TNB239V1

C2TNB239V2

C2TNB239V3

C2ONB239V4

C2ONB239V5

C2PNB272W1

C2PNB304W1

C2TNB359V1

C2PNB368W1

C2TNB431R1

SECT113R1

SECT131R1

SECT131R1

SECT131R2

SECT163K1

SECT163R1

SECT163R2

SECT193R1

SECT193R2

SECT233K1

SECT233R1

SECT239K1

SECT283K1

SECT283R1

SECT409K1

SECT409R1

SECT571K1

SECT571R1

```{rubric} Hashes
:name: hashes
```

MD2

MD4

MD5

SHA1

SHA224

SHA256

SHA384

SHA512

```{rubric} MACS
:name: macs
```

HMAC-SHA1

HMAC-SHA224

HMAC-SHA256

HMAC-SHA384

HMAC-SHA512

HMAC-MD5

```{rubric} Ciphers
:name: ciphers
```

AES128-CBC

AES192-CBC

AES256-CBC

AES128-GCM

AES192-GCM

AES256-GCM

CAMELLIA128-CBC

CAMELLIA192-CBC

CAMELLIA256-CBC

SEED-CBC

DES-EDE3-CBC

DES-40-CBC

DES-CBC

NULL-CIPHER

RC2

RC4

IDEA

```{rubric} SSL Key exchanges
:name: ssl_key_exchanges
```

RSA

RSA-EXPORT

DHE-RSA

DHE-DSS

DH-RSA

DH-DSS

ECDHE-ECDSA

ECDHE-RSA

ECDH-ECDSA

ECDH-RSA

```{rubric} Restrictions for asymmetric keys (integers)
:name: restrictions_for_asymmetric_keys_(integers)
```

RSA-MIN

DH-MIN

DSA-MIN

```{rubric} Constraints on SSL Protocols Versions (integers)
:name: constraints_on_ssl_protocols_versions_(integers)
```

TLS-VERSION-MIN

TLS-VERSION-MAX

```{rubric} Constraints on DTLS Protocols Versions (integers)
:name: constraints_on_dtls_protocols_versions_(integers)
```

DTLS-VERSION-MIN

DTLS-VERSION-MAX

```{rubric} Policy flags for algorithms
:name: policy_flags_for_algorithms
```

SSL

SSL-KEY-EXCHANGE

KEY-EXCHANGE

CERT-SIGNATURE

SIGNATURE

ALL

NONE
:::
