66 lines
1.2 KiB
Plaintext
66 lines
1.2 KiB
Plaintext
== How to fix it in Cryptodome
|
|
|
|
=== Code examples
|
|
|
|
include::../../common/fix/code-rationale.adoc[]
|
|
|
|
==== Noncompliant code example
|
|
|
|
include::../../common/fix/rsa.adoc[]
|
|
|
|
[source,python,diff-id=6,diff-type=noncompliant]
|
|
----
|
|
from Crypto.PublicKey import RSA
|
|
|
|
key_rsa1024 = RSA.generate(1024) # Noncompliant
|
|
----
|
|
|
|
include::../../common/fix/dsa.adoc[]
|
|
|
|
[source,python,diff-id=7,diff-type=noncompliant]
|
|
----
|
|
from Crypto.PublicKey import DSA
|
|
|
|
key_dsa1024 = DSA.generate(1024) # Noncompliant
|
|
----
|
|
|
|
include::../../common/fix/ec.adoc[]
|
|
|
|
[source,python,diff-id=8,diff-type=noncompliant]
|
|
----
|
|
from Crypto.PublicKey import DSA
|
|
|
|
key_p192 = ECC.generate(curve="secp192r1") # Noncompliant
|
|
----
|
|
|
|
==== Compliant solution
|
|
|
|
[source,python,diff-id=6,diff-type=compliant]
|
|
----
|
|
from Crypto.PublicKey import RSA
|
|
|
|
key_rsa1024 = RSA.generate(3072)
|
|
----
|
|
|
|
[source,python,diff-id=7,diff-type=compliant]
|
|
----
|
|
from Crypto.PublicKey import DSA
|
|
|
|
key_dsa1024 = DSA.generate(3072)
|
|
----
|
|
|
|
[source,python,diff-id=8,diff-type=compliant]
|
|
----
|
|
from Crypto.PublicKey import DSA
|
|
|
|
key_ed25519 = ECC.generate(curve="ed25519")
|
|
----
|
|
|
|
=== How does this work?
|
|
|
|
include::../../common/fix/fix.adoc[]
|
|
|
|
=== Going the extra mile
|
|
|
|
include::../../common/extra-mile/pre-quantum.adoc[]
|