jdk/src/java.base/share/conf/security/java.security
changeset 38576 ccaac80108c5
parent 38435 292ad46c1bf1
child 38948 a41d2f668f49
equal deleted inserted replaced
38575:69a809ef2aa4 38576:ccaac80108c5
   568 # for certification path building and validation.  For example, "MD2" is
   568 # for certification path building and validation.  For example, "MD2" is
   569 # generally no longer considered to be a secure hash algorithm.  This section
   569 # generally no longer considered to be a secure hash algorithm.  This section
   570 # describes the mechanism for disabling algorithms based on algorithm name
   570 # describes the mechanism for disabling algorithms based on algorithm name
   571 # and/or key length.  This includes algorithms used in certificates, as well
   571 # and/or key length.  This includes algorithms used in certificates, as well
   572 # as revocation information such as CRLs and signed OCSP Responses.
   572 # as revocation information such as CRLs and signed OCSP Responses.
   573 #
   573 # The syntax of the disabled algorithm string is described as follows:
   574 # The syntax of the disabled algorithm string is described as this Java
       
   575 # BNF-style:
       
   576 #   DisabledAlgorithms:
   574 #   DisabledAlgorithms:
   577 #       " DisabledAlgorithm { , DisabledAlgorithm } "
   575 #       " DisabledAlgorithm { , DisabledAlgorithm } "
   578 #
   576 #
   579 #   DisabledAlgorithm:
   577 #   DisabledAlgorithm:
   580 #       AlgorithmName [Constraint] { '&' Constraint }
   578 #       AlgorithmName [Constraint] { '&' Constraint }
   581 #
   579 #
   582 #   AlgorithmName:
   580 #   AlgorithmName:
   583 #       (see below)
   581 #       (see below)
   584 #
   582 #
   585 #   Constraint:
   583 #   Constraint:
   586 #       KeySizeConstraint, CertConstraint
   584 #       KeySizeConstraint | CAConstraint | DenyAfterConstraint
   587 #
   585 #
   588 #   KeySizeConstraint:
   586 #   KeySizeConstraint:
   589 #       keySize Operator DecimalInteger
   587 #       keySize Operator KeyLength
   590 #
   588 #
   591 #   Operator:
   589 #   Operator:
   592 #       <= | < | == | != | >= | >
   590 #       <= | < | == | != | >= | >
   593 #
   591 #
   594 #   DecimalInteger:
   592 #   KeyLength:
   595 #       DecimalDigits
   593 #       Integer value of the algorithm's key length in bits
   596 #
   594 #
   597 #   DecimalDigits:
   595 #   CAConstraint:
   598 #       DecimalDigit {DecimalDigit}
       
   599 #
       
   600 #   DecimalDigit: one of
       
   601 #       1 2 3 4 5 6 7 8 9 0
       
   602 #
       
   603 #   CertConstraint
       
   604 #       jdkCA
   596 #       jdkCA
       
   597 #
       
   598 #   DenyAfterConstraint:
       
   599 #       denyAfter YYYY-MM-DD
   605 #
   600 #
   606 # The "AlgorithmName" is the standard algorithm name of the disabled
   601 # The "AlgorithmName" is the standard algorithm name of the disabled
   607 # algorithm. See "Java Cryptography Architecture Standard Algorithm Name
   602 # algorithm. See "Java Cryptography Architecture Standard Algorithm Name
   608 # Documentation" for information about Standard Algorithm Names.  Matching
   603 # Documentation" for information about Standard Algorithm Names.  Matching
   609 # is performed using a case-insensitive sub-element matching rule.  (For
   604 # is performed using a case-insensitive sub-element matching rule.  (For
   613 # rejected during certification path building and validation.  For example,
   608 # rejected during certification path building and validation.  For example,
   614 # the assertion algorithm name "DSA" will disable all certificate algorithms
   609 # the assertion algorithm name "DSA" will disable all certificate algorithms
   615 # that rely on DSA, such as NONEwithDSA, SHA1withDSA.  However, the assertion
   610 # that rely on DSA, such as NONEwithDSA, SHA1withDSA.  However, the assertion
   616 # will not disable algorithms related to "ECDSA".
   611 # will not disable algorithms related to "ECDSA".
   617 #
   612 #
   618 # A "Constraint" provides further guidance for the algorithm being specified.
   613 # A "Constraint" defines restrictions on the keys and/or certificates for
   619 # The "KeySizeConstraint" requires a key of a valid size range if the
   614 # a specified AlgorithmName:
   620 # "AlgorithmName" is of a key algorithm.  The "DecimalInteger" indicates the
   615 #
   621 # key size specified in number of bits.  For example, "RSA keySize <= 1024"
   616 #   KeySizeConstraint:
   622 # indicates that any RSA key with key size less than or equal to 1024 bits
   617 #     keySize Operator KeyLength
   623 # should be disabled, and "RSA keySize < 1024, RSA keySize > 2048" indicates
   618 #       The constraint requires a key of a valid size range if the
   624 # that any RSA key with key size less than 1024 or greater than 2048 should
   619 #       "AlgorithmName" is of a key algorithm.  The "KeyLength" indicates
   625 # be disabled. Note that the "KeySizeConstraint" only makes sense to key
   620 #       the key size specified in number of bits.  For example,
   626 # algorithms.
   621 #       "RSA keySize <= 1024" indicates that any RSA key with key size less
   627 #
   622 #       than or equal to 1024 bits should be disabled, and
   628 # "CertConstraint" specifies additional constraints for
   623 #       "RSA keySize < 1024, RSA keySize > 2048" indicates that any RSA key
   629 # certificates that contain algorithms that are restricted:
   624 #       with key size less than 1024 or greater than 2048 should be disabled.
   630 #
   625 #       This constraint is only used on algorithms that have a key size.
   631 #   "jdkCA" prohibits the specified algorithm only if the algorithm is used
   626 #
   632 #     in a certificate chain that terminates at a marked trust anchor in the
   627 #   CAConstraint:
   633 #     lib/security/cacerts keystore.  All other chains are not affected.
   628 #     jdkCA
   634 #     If the jdkCA constraint is not set, then all chains using the
   629 #       This constraint prohibits the specified algorithm only if the
   635 #     specified algorithm are restricted.  jdkCA may only be used once in
   630 #       algorithm is used in a certificate chain that terminates at a marked
   636 #     a DisabledAlgorithm expression.
   631 #       trust anchor in the lib/security/cacerts keystore.  If the jdkCA
   637 #     Example:  To apply this constraint to SHA-1 certificates, include
   632 #       constraint is not set, then all chains using the specified algorithm
   638 #     the following:  "SHA1 jdkCA"
   633 #       are restricted.  jdkCA may only be used once in a DisabledAlgorithm
       
   634 #       expression.
       
   635 #       Example:  To apply this constraint to SHA-1 certificates, include
       
   636 #       the following:  "SHA1 jdkCA"
       
   637 #
       
   638 #   DenyAfterConstraint:
       
   639 #     denyAfter YYYY-MM-DD
       
   640 #       This constraint prohibits a certificate with the specified algorithm
       
   641 #       from being used after the date regardless of the certificate's
       
   642 #       validity.  JAR files that are signed and timestamped before the
       
   643 #       constraint date with certificates containing the disabled algorithm
       
   644 #       will not be restricted.  The date is processed in the UTC timezone.
       
   645 #       This constraint can only be used once in a DisabledAlgorithm
       
   646 #       expression.
       
   647 #       Example:  To deny usage of RSA 2048 bit certificates after Feb 3 2020,
       
   648 #       use the following:  "RSA keySize == 2048 & denyAfter 2020-02-03"
   639 #
   649 #
   640 # When an algorithm must satisfy more than one constraint, it must be
   650 # When an algorithm must satisfy more than one constraint, it must be
   641 # delimited by an ampersand '&'.  For example, to restrict certificates in a
   651 # delimited by an ampersand '&'.  For example, to restrict certificates in a
   642 # chain that terminate at a distribution provided trust anchor and contain
   652 # chain that terminate at a distribution provided trust anchor and contain
   643 # RSA keys that are less than or equal to 1024 bits, add the following
   653 # RSA keys that are less than or equal to 1024 bits, add the following