openssl-ec
名称
openssl-ec - EC 密钥处理
语法
openssl ec [-help] [-inform DER|PEM|P12|ENGINE] [-outform DER|PEM] [-in 文件名|uri] [-passin 参数] [-out 文件名] [-passout 参数] [-des] [-des3] [-idea] [-text] [-noout] [-param_out] [-pubin] [-pubout] [-conv_form 参数] [-param_enc 参数] [-no_public] [-check] [-engine id] [-provider 名称] [-provider-path 路径] [-propquery 属性查询]
描述
该 openssl-ec(1) 命令处理 EC 密钥。它们可以在各种格式之间转换,并且可以打印出其组件。注意 OpenSSL 使用“SEC 1:椭圆曲线密码学”(http://www.secg.org/)中指定的私钥格式。要将 OpenSSL EC 私钥转换为 PKCS#8 私钥格式,请使用 openssl-pkcs8(1) 命令。
选项
- -help
-
打印用法信息。
- -inform DER|PEM|P12|ENGINE
-
密钥输入格式;默认为未指定。有关详细信息,请参阅 openssl-format-options(1)。
- -outform DER|PEM
-
密钥输出格式;默认为PEM。有关详细信息,请参阅 openssl-format-options(1)。
私钥为 SEC1 私钥或 PKCS#8 格式。公钥为 IETF RFC 3280 中指定的SubjectPublicKeyInfo。
- -in 文件名|uri
-
这指定了读取密钥的输入,如果未指定此选项,则为标准输入。如果密钥已加密,则会提示输入密码短语。
- -out 文件名
-
这指定了写入密钥的输出文件名,如果未指定,则为标准输出。如果设置了任何加密选项,则会提示输入密码短语。输出文件名不应与输入文件名相同。
- -passin 参数,-passout 参数
-
输入和输出文件的密码源。有关参数格式的更多信息,请参阅 openssl-passphrase-options(1)。
- -des|-des3|-idea
-
这些选项使用 DES、三重 DES、IDEA 或 OpenSSL 支持的任何其他密码加密私钥,然后输出它。会提示输入密码短语。如果没有指定这些选项,则密钥将以纯文本形式写入。这意味着使用此命令读取未加密的密钥且没有加密选项可以用于从密钥中删除密码短语,或者通过设置加密选项,它可以用于添加或更改密码短语。这些选项只能与 PEM 格式的输出文件一起使用。
- -text
-
打印出公钥、私钥组件和参数。
- -noout
-
此选项阻止输出密钥的编码版本。
- -param_out
-
打印椭圆曲线参数。
- -pubin
-
默认情况下,从输入中读取私钥。使用此选项,将改为读取公钥。如果输入不包含公钥但包含私钥,则使用其公钥部分。
- -pubout
-
默认情况下,输出私钥。使用此选项,将改为输出公钥。如果输入是公钥,则会自动设置此选项。
- -conv_form 参数
-
这指定了如何将椭圆曲线上的点转换为八位字节串。可能的值为:compressed、uncompressed(默认值)和hybrid。有关点转换形式的更多信息,请阅读 X9.62 标准。注意 由于专利问题,compressed 选项默认情况下对二进制曲线禁用,并且可以通过在编译时定义预处理器宏OPENSSL_EC_BIN_PT_COMP 来启用。
- -param_enc 参数
-
这指定了如何对椭圆曲线参数进行编码。可能的值为:named_curve,即 ec 参数由 OID 指定,或explicit,其中 ec 参数明确给出(有关 EC 参数结构的定义,请参阅 RFC 3279)。默认值为named_curve。注意 RFC 3279 中指定的implicitlyCA 备选方案目前在 OpenSSL 中未实现。
- -no_public
-
此选项从私钥输出中省略公钥组件。
- -check
-
此选项检查 EC 私钥或公钥的一致性。
- -engine id
-
请参阅 openssl(1) 中的“引擎选项”。此选项已弃用。
- -provider 名称
- -provider-path 路径
- -propquery 属性查询
该 openssl-pkey(1) 命令能够执行此命令可以执行的所有操作,以及支持其他公钥类型。
示例
该 openssl-pkey(1) 命令的文档包含与此处列出的示例等效的示例。
要使用三重 DES 加密私钥
openssl ec -in key.pem -des3 -out keyout.pem
要将私钥从 PEM 格式转换为 DER 格式
openssl ec -in key.pem -outform DER -out keyout.der
要将私钥的组件打印到标准输出
openssl ec -in key.pem -text -noout
仅输出私钥的公钥部分
openssl ec -in key.pem -pubout -out pubkey.pem
将参数编码更改为explicit
openssl ec -in key.pem -param_enc explicit -out keyout.pem
将点转换形式更改为compressed
openssl ec -in key.pem -conv_form compressed -out keyout.pem
另请参阅
openssl(1)、openssl-pkey(1)、openssl-ecparam(1)、openssl-dsa(1)、openssl-rsa(1)
历史
-engine 选项在 OpenSSL 3.0 中已弃用。
-conv_form 和-no_public 选项在 OpenSSL 3.0 中不再支持从引擎加载的密钥。
版权
版权所有 2003-2023 OpenSSL 项目作者。保留所有权利。
根据 Apache 许可证 2.0(“许可证”)许可。除非符合许可证,否则您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获取副本。