标签: pkey

  • openssl-pkey

    openssl-pkey

    名称

    openssl-pkey – public or private key processing command

    概述

    openssl pkey [-help] [-engine id] [-provider name] [-provider-path path] [-propquery propq] [-check] [-pubcheck] [-in filename|uri] [-inform DER|PEM|P12|ENGINE] [-passin arg] [-pubin] [-out filename] [-outform DER|PEM] [-cipher] [-passout arg] [-traditional] [-pubout] [-noout] [-text] [-text_pub] [-ec_conv_form arg] [-ec_param_enc arg]

    描述

    此命令处理公钥或私钥。它们可以在各种形式之间转换,并打印其组成部分。

    命令语法

    通用命令

    • -help

      帮助

    • -engine id

      指定engine id,这个选项已经废弃

    • -provider name

      指定provider name

    • -provider-path path

      provider的路径

    • -propquery propq

      provider中的属性

    输入命令

    • -in filename|uri

      指定密钥文件的路径,如果不指定则从终端读取,如果有密码还会提示输入密码

    • -inform DER|PEM|P12|ENGINE

      读取的密钥格式

    • -passin arg

      指定读取密钥文件时的密码

    • -pubin

      默认情况下,从输入中读取私钥。使用此选项则改为读取公钥。如果输入不包含公钥但包含私钥,则使用其公钥部分(This option is automatically set if the input is a public key.)。
      实际测试指定这个选项时只读取公钥,不指定时私钥和公钥都会读取。

    输出命令

    • -out

      指定要写入密钥的输出文件名,如果未指定此选项,则使用标准输出。如果没有指定-passout,则会提示输入密码。输出文件名不应与输入文件名相同。

    • -outform DER|PEM

      写入的密钥格式

    • -cipher

      加密私钥pem的算法。EVP_get_cipherbyname() 接受的任何算法名称都是可以接受的,例如 aes128。DER 输出不支持加密。

    • -passout arg

      指定写入密钥文件时的密码

    • -traditional

      写入密钥时使用PKCS#1格式,默认是PKCS#8格式。PKCS#1仅能存储RSA密钥,PKCS#8是对PKCS#1的升级可以支持多种算法密钥存储。
      所以并不是所有算法都支持-traditional选项,我测试的结果是指定-traditional选项时RSA会用PKCS#1格式,P-256会用CMP PKI Mesaage格式,SM2和Ed25519等较新的算法则完全不支持

    • -pubout

      输出公钥而不是私钥
      实际测试指定这个选项时只输出公钥,不指定时私钥和公钥都会输出,如果都有的话。

    • -noout

      不打印编码的私钥

    • -text

      除了编码版本外还以文本方式打印私钥的内容

    • -text_pub

      仅输出公钥的文本部分 (also for private keys). 输出PEM格式时不可用.

    • -ec_conv_form arg

      仅支持ECC算法

      This specifies how the points on the elliptic curve are converted into octet strings. Possible values are: compressed (the default value), uncompressed and hybrid. For more information regarding the point conversion forms please read the X9.62 standard. Note Due to patent issues the compressed option is disabled by default for binary curves and can be enabled by defining the preprocessor macro OPENSSL_EC_BIN_PT_COMP at compile time.
      曲线的点转换到字节组时的方法,可以是compressed (the default value), uncompressed and hybrid,因为专利问题binary curves默认是禁用压缩的。(啥是binary curves我也不懂)

    • -ec_param_enc arg

      仅支持ECC算法
      This specifies how the elliptic curve parameters are encoded. Possible value are: named_curve, i.e. the ec parameters are specified by an OID, or explicit where the ec parameters are explicitly given (see RFC 3279 for the definition of the EC parameters structures). The default value is named_curve. Note the implicitlyCA alternative, as specified in RFC 3279, is currently not implemented in OpenSSL.
      用于曲线参数的编码。编码参数必须是 named_curve 或 explicit 。默认值为 named_curve。
      使用named_curve时参数文件中只包含代表曲线的OID,使用explicit则包含定义曲线的参数的具体值(这些参数决定了不同的曲线,比如P-256和SM2的曲线参数是不同的)。

    Views: 1