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 |