<required>
des
aes

gcm
ccm
ctr
cbc
mode_pad

# hash
sha2_32
sha2_64
sha3

# mac
cmac
hmac
gmac

# kdf
sp800_108
sp800_56a
sp800_56c

shake

# pk_pad
eme_oaep
emsa_pssr
emsa1

# pubkey
dh
rsa
dsa
ecdsa
ecdh

# rng
auto_rng
hmac_drbg

# keywrap
rfc3394
</required>

<if_available>
# block
aes_ni
aes_vperm
aes_armv8
aes_power8

# hash
sha1_sse2
sha1_x86
sha1_armv8
sha2_32_x86
sha2_32_armv8
sha2_32_bmi2
sha2_64_bmi2
sha3_bmi2

# modes
clmul_cpu
clmul_ssse3

# hash
sha2_32_x86
sha2_32_armv8

# entropy sources
dev_random
proc_walk
rdrand
rdseed
win32_stats

# rng
rdrand_rng
system_rng

# utils
http_util # needed by x509 for OCSP online checks
locking_allocator
simd
</if_available>

<prohibited>
# block
aria
blowfish
camellia
cascade
cast128
cast256
gost_28147
idea
idea_sse2
kasumi
lion
misty1
noekeon
noekeon_simd
seed
serpent
serpent_simd
serpent_avx2
sm4
shacal2
shacal2_x86
shacal2_simd
threefish_512
threefish_512_avx2
twofish
xtea

# modes
chacha20poly1305
eax
ocb
siv
cfb

# stream
chacha
chacha_simd32
chacha_avx2
shake_cipher
ofb
rc4
salsa20

# kdf
hkdf
kdf1
kdf2
prf_x942

# pubkey
curve25519
ed25519
ecgdsa
eckcdsa
elgamal
gost_3410
mce
mceies
rfc6979
newhope
cecpq1
xmss
sm2

# pk_pad
#eme_pkcs1 // needed for tls
#emsa_pkcs1 // needed for tls
emsa_raw
emsa_x931

# hash
blake2
comb4p
gost_3411
md4
#md5 // needed for tls
rmd160
#sha1 // needed for tls
#sha1_sse2 // needed for tls
skein
sm3
streebog
tiger
whirlpool

# rng
chacha_rng

# mac
cbc_mac
poly1305
siphash
x919_mac

# misc
bcrypt
</prohibited>
