Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8233427

Remove the default keytool -keyalg value

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P3 P3
    • 14
    • security-libs
    • None
    • behavioral
    • medium
    • Removing the default value will break keytool commands that have provided it when generating a key or a keypair. This should be quite limited because DSA and DES should not be used nowadays.
    • add/remove/modify command line option
    • JDK

      Summary

      Remove the default -keyalg value for -genkeypair and -genseckey commands of keytool, so that if user has not explicitly specified one it will be an error.

      Problem

      The default values (DSA and DES) were deprecated in JDK 12 and it's now time to remove them. In addition, NIST has recently (2019-10-31, https://www.federalregister.gov/documents/2019/10/31/2019-23742/request-for-comments-on-fips-186-5-and-sp-800-186) proposed removing DSA in its FIPS 186-5 draft, claiming that "Industry adoption of DSA was limited" and "recent academic analysis observed that implementations of DSA may be vulnerable to attacks if domain parameters are not properly generated". DES has been considered weak and obsolete for a long time, see https://www.nist.gov/news-events/news/2005/06/nist-withdraws-outdated-data-encryption-standard and https://tools.ietf.org/html/rfc4772.

      Solution

      Removes the default values.

      Specification

      For keytool -genkeypair and keytool -genseckey, if no -keyalg is specified, no key will be generated and keytool will terminate with an error showing:

      The -keyalg option must be specified.

            weijun Weijun Wang
            weijun Weijun Wang
            Sean Mullan
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: