Home / Type/ Algorithm Type — netty Architecture

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"),

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