{
    "content": [
        {
            "type": "text",
            "text": "# OPENSSL-GENPKEY (info)\n\n## NAME\n\nopenssl-genpkey - generate a private key\n\n## SYNOPSIS\n\nopenssl genpkey [-help] [-out filename] [-outform DER|PEM] [-quiet]\n[-pass arg] [-cipher] [-paramfile file] [-algorithm alg] [-pkeyopt\nopt:value] [-genparam] [-text] [-engine id] [-provider name]\n[-provider-path path] [-propquery propq] [-config configfile]\n\n## DESCRIPTION\n\nThis command generates a private key.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **OPTIONS** (5 subsections)\n- **KEY GENERATION OPTIONS**\n- **PARAMETER GENERATION OPTIONS**\n- **NOTES**\n- **EXAMPLES**\n- **HISTORY**\n- **COPYRIGHT**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "OPENSSL-GENPKEY",
        "section": "",
        "mode": "info",
        "summary": "openssl-genpkey - generate a private key",
        "synopsis": "openssl genpkey [-help] [-out filename] [-outform DER|PEM] [-quiet]\n[-pass arg] [-cipher] [-paramfile file] [-algorithm alg] [-pkeyopt\nopt:value] [-genparam] [-text] [-engine id] [-provider name]\n[-provider-path path] [-propquery propq] [-config configfile]",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Print out a usage message. -out filename Output the key to the specified file. If this argument is not specified then standard output is used. -outform DER|PEM The output format, except when -genparam is given; the default is PEM. See openssl-format-options(1) for details. When -genparam is given, -outform is ignored."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Do not output \"status dots\" while generating keys. -pass arg The output file password source. For more information about the format of arg see openssl-passphrase-options(1)."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "This option encrypts the private key with the supplied cipher. Any algorithm name accepted by EVPgetcipherbyname() is acceptable such as des3. -algorithm alg Public key algorithm to use such as RSA, DSA, DH or DHX. If used this option must precede any -pkeyopt options. The options -paramfile and -algorithm are mutually exclusive. Engines may add algorithms in addition to the standard built-in ones. Valid built-in algorithm names for private key generation are RSA, RSA-PSS, EC, X25519, X448, ED25519 and ED448. Valid built-in algorithm names for parameter generation (see the -genparam option) are DH, DSA and EC. Note that the algorithm name X9.42 DH may be used as a synonym for DHX keys and PKCS#3 refers to DH Keys. Some options are not shared between DH and DHX keys. -pkeyopt opt:value Set the public key algorithm option opt to value. The precise set of options supported depends on the public key algorithm used and its implementation. See \"KEY GENERATION OPTIONS\" and \"PARAMETER GENERATION OPTIONS\" below for more details."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Generate a set of parameters instead of a private key. If used this option must precede any -algorithm, -paramfile or -pkeyopt options. -paramfile filename Some public key algorithms generate a private key based on a set of parameters. They can be supplied using this option. If this option is used the public key algorithm used is determined by the parameters. If used this option must precede any -pkeyopt options. The options -paramfile and -algorithm are mutually exclusive."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Print an (unencrypted) text representation of private and public keys and parameters along with the PEM or DER structure. -engine id See \"Engine Options\" in openssl(1). This option is deprecated. -provider name -provider-path path -propquery propq See \"Provider Options\" in openssl(1), provider(7), and property(7). -config configfile See \"Configuration Option\" in openssl(1)."
            }
        ],
        "examples": [
            "Generate an RSA private key using default parameters:",
            "openssl genpkey -algorithm RSA -out key.pem",
            "Encrypt output private key using 128 bit AES and the passphrase",
            "\"hello\":",
            "openssl genpkey -algorithm RSA -out key.pem -aes-128-cbc -pass pass:hello",
            "Generate a 2048 bit RSA key using 3 as the public exponent:",
            "openssl genpkey -algorithm RSA -out key.pem \\",
            "-pkeyopt rsakeygenbits:2048 -pkeyopt rsakeygenpubexp:3",
            "Generate 2048 bit DSA parameters that can be validated: The output",
            "values for gindex and seed are required for key validation purposes and",
            "are not saved to the output pem file).",
            "openssl genpkey -genparam -algorithm DSA -out dsap.pem -pkeyopt pbits:2048 \\",
            "-pkeyopt qbits:224 -pkeyopt digest:SHA256 -pkeyopt gindex:1 -text",
            "Generate DSA key from parameters:",
            "openssl genpkey -paramfile dsap.pem -out dsakey.pem",
            "Generate 4096 bit DH Key using safe prime group ffdhe4096:",
            "openssl genpkey -algorithm DH -out dhkey.pem -pkeyopt group:ffdhe4096",
            "Generate 2048 bit X9.42 DH key with 256 bit subgroup using RFC5114",
            "group3:",
            "openssl genpkey -algorithm DHX -out dhkey.pem -pkeyopt dhrfc5114:3",
            "Generate a DH key using a DH parameters file:",
            "openssl genpkey -paramfile dhp.pem -out dhkey.pem",
            "Output DH parameters for safe prime group ffdhe2048:",
            "openssl genpkey -genparam -algorithm DH -out dhp.pem -pkeyopt group:ffdhe2048",
            "Output 2048 bit X9.42 DH parameters with 224 bit subgroup using RFC5114",
            "group2:",
            "openssl genpkey -genparam -algorithm DHX -out dhp.pem -pkeyopt dhrfc5114:2",
            "Output 2048 bit X9.42 DH parameters with 224 bit subgroup using",
            "FIP186-4 keygen:",
            "openssl genpkey -genparam -algorithm DHX -out dhp.pem -text \\",
            "-pkeyopt pbits:2048 -pkeyopt qbits:224 -pkeyopt digest:SHA256 \\",
            "-pkeyopt gindex:1 -pkeyopt dhparamgentype:2",
            "Output 1024 bit X9.42 DH parameters with 160 bit subgroup using",
            "FIP186-2 keygen:",
            "openssl genpkey -genparam -algorithm DHX -out dhp.pem -text \\",
            "-pkeyopt pbits:1024 -pkeyopt qbits:160 -pkeyopt digest:SHA1 \\",
            "-pkeyopt gindex:1 -pkeyopt dhparamgentype:1",
            "Output 2048 bit DH parameters:",
            "openssl genpkey -genparam -algorithm DH -out dhp.pem \\",
            "-pkeyopt dhparamgenprimelen:2048",
            "Output 2048 bit DH parameters using a generator:",
            "openssl genpkey -genparam -algorithm DH -out dhpx.pem \\",
            "-pkeyopt dhparamgenprimelen:2048 \\",
            "-pkeyopt dhparamgentype:1",
            "Generate EC parameters:",
            "openssl genpkey -genparam -algorithm EC -out ecp.pem \\",
            "-pkeyopt ecparamgencurve:secp384r1 \\",
            "-pkeyopt ecparamenc:namedcurve",
            "Generate EC key from parameters:",
            "openssl genpkey -paramfile ecp.pem -out eckey.pem",
            "Generate EC key directly:",
            "openssl genpkey -algorithm EC -out eckey.pem \\",
            "-pkeyopt ecparamgencurve:P-384 \\",
            "-pkeyopt ecparamenc:namedcurve",
            "Generate an X25519 private key:",
            "openssl genpkey -algorithm X25519 -out xkey.pem",
            "Generate an ED448 private key:",
            "openssl genpkey -algorithm ED448 -out xkey.pem"
        ],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "-help",
                        "lines": 12
                    },
                    {
                        "name": "-quiet",
                        "lines": 6
                    },
                    {
                        "name": "-cipher",
                        "lines": 26
                    },
                    {
                        "name": "-genparam",
                        "lines": 10
                    },
                    {
                        "name": "-text",
                        "lines": 14
                    }
                ]
            },
            {
                "name": "KEY GENERATION OPTIONS",
                "lines": 53,
                "subsections": []
            },
            {
                "name": "PARAMETER GENERATION OPTIONS",
                "lines": 152,
                "subsections": []
            },
            {
                "name": "NOTES",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "EXAMPLES",
                "lines": 96,
                "subsections": []
            },
            {
                "name": "HISTORY",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 8,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "openssl-genpkey - generate a private key\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "openssl genpkey [-help] [-out filename] [-outform DER|PEM] [-quiet]\n[-pass arg] [-cipher] [-paramfile file] [-algorithm alg] [-pkeyopt\nopt:value] [-genparam] [-text] [-engine id] [-provider name]\n[-provider-path path] [-propquery propq] [-config configfile]\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This command generates a private key.\n",
                "subsections": []
            },
            "OPTIONS": {
                "content": "",
                "subsections": [
                    {
                        "name": "-help",
                        "content": "Print out a usage message.\n\n-out filename\nOutput the key to the specified file. If this argument is not\nspecified then standard output is used.\n\n-outform DER|PEM\nThe output format, except when -genparam is given; the default is\nPEM.  See openssl-format-options(1) for details.\n\nWhen -genparam is given, -outform is ignored.\n"
                    },
                    {
                        "name": "-quiet",
                        "content": "Do not output \"status dots\" while generating keys.\n\n-pass arg\nThe output file password source. For more information about the\nformat of arg see openssl-passphrase-options(1).\n"
                    },
                    {
                        "name": "-cipher",
                        "content": "This option encrypts the private key with the supplied cipher. Any\nalgorithm name accepted by EVPgetcipherbyname() is acceptable\nsuch as des3.\n\n-algorithm alg\nPublic key algorithm to use such as RSA, DSA, DH or DHX. If used\nthis option must precede any -pkeyopt options. The options\n-paramfile and -algorithm are mutually exclusive. Engines may add\nalgorithms in addition to the standard built-in ones.\n\nValid built-in algorithm names for private key generation are RSA,\nRSA-PSS, EC, X25519, X448, ED25519 and ED448.\n\nValid built-in algorithm names for parameter generation (see the\n-genparam option) are DH, DSA and EC.\n\nNote that the algorithm name X9.42 DH may be used as a synonym for\nDHX keys and PKCS#3 refers to DH Keys. Some options are not shared\nbetween DH and DHX keys.\n\n-pkeyopt opt:value\nSet the public key algorithm option opt to value. The precise set\nof options supported depends on the public key algorithm used and\nits implementation. See \"KEY GENERATION OPTIONS\" and \"PARAMETER\nGENERATION OPTIONS\" below for more details.\n"
                    },
                    {
                        "name": "-genparam",
                        "content": "Generate a set of parameters instead of a private key. If used this\noption must precede any -algorithm, -paramfile or -pkeyopt options.\n\n-paramfile filename\nSome public key algorithms generate a private key based on a set of\nparameters.  They can be supplied using this option. If this option\nis used the public key algorithm used is determined by the\nparameters. If used this option must precede any -pkeyopt options.\nThe options -paramfile and -algorithm are mutually exclusive.\n"
                    },
                    {
                        "name": "-text",
                        "content": "Print an (unencrypted) text representation of private and public\nkeys and parameters along with the PEM or DER structure.\n\n-engine id\nSee \"Engine Options\" in openssl(1).  This option is deprecated.\n\n-provider name\n-provider-path path\n-propquery propq\nSee \"Provider Options\" in openssl(1), provider(7), and property(7).\n\n-config configfile\nSee \"Configuration Option\" in openssl(1).\n"
                    }
                ]
            },
            "KEY GENERATION OPTIONS": {
                "content": "The options supported by each algorithm and indeed each implementation\nof an algorithm can vary. The options for the OpenSSL implementations\nare detailed below. There are no key generation options defined for the\nX25519, X448, ED25519 or ED448 algorithms.\n\nRSA Key Generation Options\nrsakeygenbits:numbits\nThe number of bits in the generated key. If not specified 2048 is\nused.\n\nrsakeygenprimes:numprimes\nThe number of primes in the generated key. If not specified 2 is\nused.\n\nrsakeygenpubexp:value\nThe RSA public exponent value. This can be a large decimal or\nhexadecimal value if preceded by \"0x\". Default value is 65537.\n\nRSA-PSS Key Generation Options\nNote: by default an RSA-PSS key has no parameter restrictions.\n\nrsakeygenbits:numbits, rsakeygenprimes:numprimes,\nrsakeygenpubexp:value\nThese options have the same meaning as the RSA algorithm.\n\nrsapsskeygenmd:digest\nIf set the key is restricted and can only use digest for signing.\n\nrsapsskeygenmgf1md:digest\nIf set the key is restricted and can only use digest as it's MGF1\nparameter.\n\nrsapsskeygensaltlen:len\nIf set the key is restricted and len specifies the minimum salt\nlength.\n\nEC Key Generation Options\nThe EC key generation options can also be used for parameter\ngeneration.\n\necparamgencurve:curve\nThe EC curve to use. OpenSSL supports NIST curve names such as\n\"P-256\".\n\necparamenc:encoding\nThe encoding to use for parameters. The encoding parameter must be\neither namedcurve or explicit. The default value is namedcurve.\n\nDH Key Generation Options\ngroup:name\nThe paramfile option is not required if a named group is used here.\nSee the \"DH Parameter Generation Options\" section below.\n",
                "subsections": []
            },
            "PARAMETER GENERATION OPTIONS": {
                "content": "The options supported by each algorithm and indeed each implementation\nof an algorithm can vary. The options for the OpenSSL implementations\nare detailed below.\n\nDSA Parameter Generation Options\ndsaparamgenbits:numbits\nThe number of bits in the generated prime. If not specified 2048 is\nused.\n\ndsaparamgenqbits:numbits\nqbits:numbits\nThe number of bits in the q parameter. Must be one of 160, 224 or\n256. If not specified 224 is used.\n\ndsaparamgenmd:digest\ndigest:digest\nThe digest to use during parameter generation. Must be one of sha1,\nsha224 or sha256. If set, then the number of bits in q will match\nthe output size of the specified digest and the dsaparamgenqbits\nparameter will be ignored. If not set, then a digest will be used\nthat gives an output matching the number of bits in q, i.e. sha1 if\nq length is 160, sha224 if it 224 or sha256 if it is 256.\n\nproperties:query\nThe digest property query string to use when fetching a digest from\na provider.\n\ntype:type\nThe type of generation to use. Set this to 1 to use legacy\nFIPS186-2 parameter generation. The default of 0 uses FIPS186-4\nparameter generation.\n\ngindex:index\nThe index to use for canonical generation and verification of the\ngenerator g.  Set this to a positive value ranging from 0..255 to\nuse this mode. Larger values will only use the bottom byte.  This\nindex must then be reused during key validation to verify the value\nof g.  If this value is not set then g is not verifiable. The\ndefault value is -1.\n\nhexseed:seed\nThe seed seed data to use instead of generating a random seed\ninternally.  This should be used for testing purposes only. This\nwill either produced fixed values for the generated parameters OR\nit will fail if the seed did not generate valid primes.\n\nDH Parameter Generation Options\nFor most use cases it is recommended to use the group option rather\nthan the type options. Note that the group option is not used by\ndefault if no parameter generation options are specified.\n\ngroup:name\ndhparam:name\nUse a named DH group to select constant values for the DH\nparameters.  All other options will be ignored if this value is\nset.\n\nValid values that are associated with the algorithm of \"DH\" are:\n\"ffdhe2048\", \"ffdhe3072\", \"ffdhe4096\", \"ffdhe6144\", \"ffdhe8192\",\n\"modp1536\", \"modp2048\", \"modp3072\", \"modp4096\", \"modp6144\",\n\"modp8192\".\n\nValid values that are associated with the algorithm of \"DHX\" are\nthe RFC5114 names \"dh1024160\", \"dh2048224\", \"dh2048256\".\n\ndhrfc5114:num\nIf this option is set, then the appropriate RFC5114 parameters are\nused instead of generating new parameters. The value num can be one\nof 1, 2 or 3 that are equivalant to using the option group with one\nof \"dh1024160\", \"dh2048224\" or \"dh2048256\".  All other\noptions will be ignored if this value is set.\n\npbits:numbits\ndhparamgenprimelen:numbits\nThe number of bits in the prime parameter p. The default is 2048.\n\nqbits:numbits\ndhparamgensubprimelen:numbits\nThe number of bits in the sub prime parameter q. The default is\n224.  Only relevant if used in conjunction with the\ndhparamgentype option to generate DHX parameters.\n\nsafeprime-generator:value\ndhparamgengenerator:value\nThe value to use for the generator g. The default is 2.  The\nalgorithm option must be \"DH\" for this parameter to be used.\n\ntype:string\nThe type name of DH parameters to generate. Valid values are:\n\n\"generator\"\nUse a safe prime generator with the option safeprimegenerator\nThe algorithm option must be \"DH\".\n\n\"fips1864\"\nFIPS186-4 parameter generation.  The algorithm option must be\n\"DHX\".\n\n\"fips1862\"\nFIPS186-4 parameter generation.  The algorithm option must be\n\"DHX\".\n\n\"group\"\nCan be used with the option pbits to select one of \"ffdhe2048\",\n\"ffdhe3072\", \"ffdhe4096\", \"ffdhe6144\" or \"ffdhe8192\".  The\nalgorithm option must be \"DH\".\n\n\"default\"\nSelects a default type based on the algorithm. This is used by\nthe OpenSSL default provider to set the type for backwards\ncompatability.  If algorithm is \"DH\" then \"generator\" is used.\nIf algorithm is \"DHX\" then \"fips1862\" is used.\n\ndhparamgentype:value\nThe type of DH parameters to generate. Valid values are 0, 1, 2 or\n3 which correspond to setting the option type to \"generator\",\n\"fips1862\", \"fips1864\" or \"group\".\n\ndigest:digest\nThe digest to use during parameter generation. Must be one of sha1,\nsha224 or sha256. If set, then the number of bits in qbits will\nmatch the output size of the specified digest and the qbits\nparameter will be ignored. If not set, then a digest will be used\nthat gives an output matching the number of bits in q, i.e. sha1 if\nq length is 160, sha224 if it is 224 or sha256 if it is 256.  This\nis only used by \"fips1864\" and \"fips1862\" key generation.\n\nproperties:query\nThe digest property query string to use when fetching a digest from\na provider.  This is only used by \"fips1864\" and \"fips1862\" key\ngeneration.\n\ngindex:index\nThe index to use for canonical generation and verification of the\ngenerator g.  Set this to a positive value ranging from 0..255 to\nuse this mode. Larger values will only use the bottom byte.  This\nindex must then be reused during key validation to verify the value\nof g.  If this value is not set then g is not verifiable. The\ndefault value is -1.  This is only used by \"fips1864\" and\n\"fips1862\" key generation.\n\nhexseed:seed\nThe seed seed data to use instead of generating a random seed\ninternally.  This should be used for testing purposes only. This\nwill either produced fixed values for the generated parameters OR\nit will fail if the seed did not generate valid primes.  This is\nonly used by \"fips1864\" and \"fips1862\" key generation.\n\nEC Parameter Generation Options\nThe EC parameter generation options are the same as for key generation.\nSee \"EC Key Generation Options\" above.\n",
                "subsections": []
            },
            "NOTES": {
                "content": "The use of the genpkey program is encouraged over the algorithm\nspecific utilities because additional algorithm options and ENGINE\nprovided algorithms can be used.\n",
                "subsections": []
            },
            "EXAMPLES": {
                "content": "Generate an RSA private key using default parameters:\n\nopenssl genpkey -algorithm RSA -out key.pem\n\nEncrypt output private key using 128 bit AES and the passphrase\n\"hello\":\n\nopenssl genpkey -algorithm RSA -out key.pem -aes-128-cbc -pass pass:hello\n\nGenerate a 2048 bit RSA key using 3 as the public exponent:\n\nopenssl genpkey -algorithm RSA -out key.pem \\\n-pkeyopt rsakeygenbits:2048 -pkeyopt rsakeygenpubexp:3\n\nGenerate 2048 bit DSA parameters that can be validated: The output\nvalues for gindex and seed are required for key validation purposes and\nare not saved to the output pem file).\n\nopenssl genpkey -genparam -algorithm DSA -out dsap.pem -pkeyopt pbits:2048 \\\n-pkeyopt qbits:224 -pkeyopt digest:SHA256 -pkeyopt gindex:1 -text\n\nGenerate DSA key from parameters:\n\nopenssl genpkey -paramfile dsap.pem -out dsakey.pem\n\nGenerate 4096 bit DH Key using safe prime group ffdhe4096:\n\nopenssl genpkey -algorithm DH -out dhkey.pem -pkeyopt group:ffdhe4096\n\nGenerate 2048 bit X9.42 DH key with 256 bit subgroup using RFC5114\ngroup3:\n\nopenssl genpkey -algorithm DHX -out dhkey.pem -pkeyopt dhrfc5114:3\n\nGenerate a DH key using a DH parameters file:\n\nopenssl genpkey -paramfile dhp.pem -out dhkey.pem\n\nOutput DH parameters for safe prime group ffdhe2048:\n\nopenssl genpkey -genparam -algorithm DH -out dhp.pem -pkeyopt group:ffdhe2048\n\nOutput 2048 bit X9.42 DH parameters with 224 bit subgroup using RFC5114\ngroup2:\n\nopenssl genpkey -genparam -algorithm DHX -out dhp.pem -pkeyopt dhrfc5114:2\n\nOutput 2048 bit X9.42 DH parameters with 224 bit subgroup using\nFIP186-4 keygen:\n\nopenssl genpkey -genparam -algorithm DHX -out dhp.pem -text \\\n-pkeyopt pbits:2048 -pkeyopt qbits:224 -pkeyopt digest:SHA256 \\\n-pkeyopt gindex:1 -pkeyopt dhparamgentype:2\n\nOutput 1024 bit X9.42 DH parameters with 160 bit subgroup using\nFIP186-2 keygen:\n\nopenssl genpkey -genparam -algorithm DHX -out dhp.pem -text \\\n-pkeyopt pbits:1024 -pkeyopt qbits:160 -pkeyopt digest:SHA1 \\\n-pkeyopt gindex:1 -pkeyopt dhparamgentype:1\n\nOutput 2048 bit DH parameters:\n\nopenssl genpkey -genparam -algorithm DH -out dhp.pem \\\n-pkeyopt dhparamgenprimelen:2048\n\nOutput 2048 bit DH parameters using a generator:\n\nopenssl genpkey -genparam -algorithm DH -out dhpx.pem \\\n-pkeyopt dhparamgenprimelen:2048 \\\n-pkeyopt dhparamgentype:1\n\nGenerate EC parameters:\n\nopenssl genpkey -genparam -algorithm EC -out ecp.pem \\\n-pkeyopt ecparamgencurve:secp384r1 \\\n-pkeyopt ecparamenc:namedcurve\n\nGenerate EC key from parameters:\n\nopenssl genpkey -paramfile ecp.pem -out eckey.pem\n\nGenerate EC key directly:\n\nopenssl genpkey -algorithm EC -out eckey.pem \\\n-pkeyopt ecparamgencurve:P-384 \\\n-pkeyopt ecparamenc:namedcurve\n\nGenerate an X25519 private key:\n\nopenssl genpkey -algorithm X25519 -out xkey.pem\n\nGenerate an ED448 private key:\n\nopenssl genpkey -algorithm ED448 -out xkey.pem\n",
                "subsections": []
            },
            "HISTORY": {
                "content": "The ability to use NIST curve names, and to generate an EC key\ndirectly, were added in OpenSSL 1.0.2.  The ability to generate X25519\nkeys was added in OpenSSL 1.1.0.  The ability to generate X448, ED25519\nand ED448 keys was added in OpenSSL 1.1.1.\n\nThe -engine option was deprecated in OpenSSL 3.0.\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "Copyright 2006-2021 The OpenSSL Project Authors. All Rights Reserved.\n\nLicensed under the Apache License 2.0 (the \"License\").  You may not use\nthis file except in compliance with the License.  You can obtain a copy\nin the file LICENSE in the source distribution or at\n<https://www.openssl.org/source/license.html>.\n\n3.0.2                             2026-06-02             OPENSSL-GENPKEY(1SSL)",
                "subsections": []
            }
        }
    }
}