Algorithm Type — netty Architecture
Architecture documentation for the Algorithm type/interface in CertificateBuilder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD c41ae678_be74_9f4b_58c6_679c55c9b238["Algorithm"] 5f01b946_c84e_64ab_9bff_c20e1d44105f["CertificateBuilder.java"] c41ae678_be74_9f4b_58c6_679c55c9b238 -->|defined in| 5f01b946_c84e_64ab_9bff_c20e1d44105f style c41ae678_be74_9f4b_58c6_679c55c9b238 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java lines 922–1203
public enum Algorithm {
/**
* The NIST P-256 elliptic curve algorithm, offer fast key generation, signing, and verification,
* with small keys and signatures, at 128-bits of security strength.
* <p>
* This algorithm is older than the Edwards curves, and are more widely supported.
*/
ecp256("EC", new ECGenParameterSpec("secp256r1"), "SHA256withECDSA"),
/**
* The NIST P-384 elliptic curve algorithm, offer fast key generation, signing, and verification,
* with small keys and signatures, at 192-bits of security strength.
* <p>
* This algorithm is older than the Edwards curves, and are more widely supported.
*/
ecp384("EC", new ECGenParameterSpec("secp384r1"), "SHA384withECDSA"),
/**
* The 2048-bit RSA algorithm offer roughly 112-bits of security strength, at the cost of large keys
* and slightly expensive key generation.
* <p>
* This algorithm enjoy the widest support and compatibility, though.
*/
rsa2048("RSA", new RSAKeyGenParameterSpec(2048, RSAKeyGenParameterSpec.F4), "SHA256withRSA"),
/**
* The 3072-bit RSA algorithm offer roughly 128-bits of security strength, at the cost of large keys
* and fairly expensive key generation.
* <p>
* RSA enjoy pretty wide compatibility, though not all systems support keys this large.
*/
rsa3072("RSA", new RSAKeyGenParameterSpec(3072, RSAKeyGenParameterSpec.F4), "SHA256withRSA"),
/**
* The 4096-bit RSA algorithm offer roughly greater than 128-bits of security strength,
* at the cost of large keys and very expensive key generation.
* <p>
* RSA enjoy pretty wide compatibility, though not all systems support keys this large.
*/
rsa4096("RSA", new RSAKeyGenParameterSpec(4096, RSAKeyGenParameterSpec.F4), "SHA384withRSA"),
/**
* The 8192-bit RSA algorithm offer roughly greater than 192-bits of security strength,
* at the cost of very large keys and extremely expensive key generation.
* <p>
* RSA enjoy pretty wide compatibility, though not all systems support keys this large.
*/
rsa8192("RSA", new RSAKeyGenParameterSpec(8192, RSAKeyGenParameterSpec.F4), "SHA384withRSA"),
/**
* The Ed25519 algorithm offer fast key generation, signing, and verification,
* with very small keys and signatures, at 128-bits of security strength.
* <p>
* This algorithm was added in Java 15, and may not be supported everywhere.
*/
ed25519("Ed25519", namedParameterSpec("Ed25519"), "Ed25519"),
/**
* The Ed448 algorithm offer fast key generation, signing, and verification,
* with small keys and signatures, at 224-bits of security strength.
* <p>
* This algorithm was added in Java 15, and may not be supported everywhere.
*/
ed448("Ed448", namedParameterSpec("Ed448"), "Ed448"),
/**
* The ML-DSA-44 algorithm is the NIST FIPS 204 version of the post-quantum Dilithium algorithm.
* It has 128-bits of classical security strength, and is claimed to meet NIST Level 2
* quantum security strength (equivalent to finding a SHA-256 collision).
* <p>
* This algorithm was added in Java 24, and may not be supported everywhere.
*/
mlDsa44("ML-DSA", namedParameterSpec("ML-DSA-44"), "ML-DSA-44"),
/**
* The ML-DSA-65 algorithm is the NIST FIPS 204 version of the post-quantum Dilithium algorithm.
* It has 192-bits of classical security strength, and is claimed to meet NIST Level 3
* quantum security strength (equivalent to finding the key for an AES-192 block).
* <p>
* This algorithm was added in Java 24, and may not be supported everywhere.
*/
mlDsa65("ML-DSA", namedParameterSpec("ML-DSA-65"), "ML-DSA-65"),
/**
* The ML-DSA-87 algorithm is the NIST FIPS 204 version of the post-quantum Dilithium algorithm.
* It has 256-bits of classical security strength, and is claimed to meet NIST Level 5
* quantum security strength (equivalent to finding the key for an AES-256 block).
* <p>
* This algorithm was added in Java 24, and may not be supported everywhere.
*/
mlDsa87("ML-DSA", namedParameterSpec("ML-DSA-87"), "ML-DSA-87"),
Source
Frequently Asked Questions
What is the Algorithm type?
Algorithm is a type/interface in the netty codebase, defined in pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java.
Where is Algorithm defined?
Algorithm is defined in pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java at line 922.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free