Home / Type/ KeyUsage Type — netty Architecture

KeyUsage Type — netty Architecture

Architecture documentation for the KeyUsage type/interface in CertificateBuilder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  de73ab47_f3e6_45b2_f9ac_78f41532baee["KeyUsage"]
  5f01b946_c84e_64ab_9bff_c20e1d44105f["CertificateBuilder.java"]
  de73ab47_f3e6_45b2_f9ac_78f41532baee -->|defined in| 5f01b946_c84e_64ab_9bff_c20e1d44105f
  style de73ab47_f3e6_45b2_f9ac_78f41532baee fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java lines 1214–1271

    public enum KeyUsage {
        /**
         * For verifying digital signatures, for entity authentication,
         * for entity authentication, or for integrity verification.
         */
        digitalSignature(0),
        /**
         * This key usage is deprecated by X.509, and commitment may instead be derived from the actual use of the keys.
         * <p>
         * For verifying digital signatures that imply the signer has "committed" to the
         * content being signed. This does not imply any specific policy or review on part of the signer, however.
         */
        contentCommitment(1),
        /**
         * For enciphering keys or other security information.
         */
        keyEncipherment(2),
        /**
         * For enciphering user data, but not keys or security information.
         */
        dataEncipherment(3),
        /**
         * For use in public key agreement.
         */
        keyAgreement(4),
        /**
         * For verifying the Certificate Authority's signature on a public-key certificate.
         * <p>
         * This implies {@link #digitalSignature} and {@link #contentCommitment}, so they do not need to be specified
         * separately.
         */
        keyCertSign(5),
        /**
         * For verifying the Certificate Authority's signature on a Certificate Revocation List.
         * <p>
         * This implies {@link #digitalSignature} and {@link #contentCommitment}, so they do not need to be specified
         * separately.
         */
        cRLSign(6),
        /**
         * For use with {@link #keyAgreement} to limit the key to enciphering only.
         * <p>
         * The meaning of this without the {@link #keyAgreement} bit set is unspecified.
         */
        encipherOnly(7),
        /**
         * For use with {@link #keyAgreement} to limit the key to deciphering only.
         * <p>
         * The meaning of this without the {@link #keyAgreement} bit set is unspecified.
         */
        decipherOnly(8);

        private final int bitId;

        KeyUsage(int bitId) {
            this.bitId = bitId;
        }
    }

Frequently Asked Questions

What is the KeyUsage type?
KeyUsage is a type/interface in the netty codebase, defined in pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java.
Where is KeyUsage defined?
KeyUsage is defined in pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java at line 1214.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free