Skip to content

weak-cryptographic-key (S505)#

Derived from the flake8-bandit linter.

What it does#

Checks for uses of cryptographic keys with vulnerable key sizes.

Why is this bad?#

Small keys are easily breakable. For DSA and RSA, keys should be at least 2048 bits long. For EC, keys should be at least 224 bits long.

Example#

from cryptography.hazmat.primitives.asymmetric import dsa, ec

dsa.generate_private_key(key_size=512)
ec.generate_private_key(curve=ec.SECT163K1())

Use instead:

from cryptography.hazmat.primitives.asymmetric import dsa, ec

dsa.generate_private_key(key_size=4096)
ec.generate_private_key(curve=ec.SECP384R1())

References#