OpenSSL

密碼編譯與 SSL/TLS 工具組

openssl-ec

名稱

openssl-ec - EC 金鑰處理

語法

openssl ec [-help] [-inform DER|PEM|P12|ENGINE] [-outform DER|PEM] [-in filename|uri] [-passin arg] [-out filename] [-passout arg] [-des] [-des3] [-idea] [-text] [-noout] [-param_out] [-pubin] [-pubout] [-conv_form arg] [-param_enc arg] [-no_public] [-check] [-engine id] [-provider name] [-provider-path path] [-propquery propq]

說明

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 filename|uri

這指定要從中讀取金鑰的輸入,如果未指定此選項,則為標準輸入。如果金鑰已加密,系統會提示輸入密碼。

-out filename

這指定要寫入金鑰的輸出檔名,如果未指定,則為標準輸出。如果設定任何加密選項,系統會提示輸入密碼。輸出檔名不應與輸入檔名相同。

-passin arg, -passout arg

輸入和輸出檔案的密碼來源。有關 arg 格式的詳細資訊,請參閱 openssl-passphrase-options(1)

-des|-des3|-idea

這些選項會在輸出私密金鑰前使用 DES、三重 DES、IDEA 或 OpenSSL 支援的任何其他加密演算法對其進行加密。系統會提示輸入密碼。如果未指定這些選項,金鑰會以純文字寫入。這表示使用此命令讀取未加密的加密金鑰且不使用加密選項,可移除金鑰的密碼,或透過設定加密選項,可新增或變更密碼。這些選項只能與 PEM 格式的輸出檔案搭配使用。

-text

列印公開、私密金鑰元件和參數。

-noout

此選項會阻止輸出金鑰的編碼版本。

-param_out

列印橢圓曲線參數。

-pubin

預設會從輸入讀取私密金鑰。使用此選項會改為讀取公開金鑰。如果輸入不包含公開金鑰但包含私密金鑰,則會使用其公開部分。

-pubout

預設會輸出私密金鑰。使用此選項會改為輸出公開金鑰。如果輸入是公開金鑰,此選項會自動設定。

-conv_form arg

此選項會指定如何將橢圓曲線上的點轉換為八進位字串。可能的數值為:compressed(壓縮)、uncompressed(未壓縮,預設值)和 hybrid(混合)。有關點轉換形式的詳細資訊,請參閱 X9.62 標準。注意由於專利問題,compressed 選項預設會對二進位曲線停用,且可在編譯時定義預處理器巨集 OPENSSL_EC_BIN_PT_COMP 來啟用。

-param_enc arg

此選項會指定如何編碼橢圓曲線參數。可能的數值為:named_curve,亦即 ec 參數由 OID 指定,或 explicit,其中 ec 參數明確給出(請參閱 RFC 3279 以取得 EC 參數結構的定義)。預設值為 named_curve注意 RFC 3279 中指定的 implicitlyCA 選項目前未在 OpenSSL 中實作。

-no_public

此選項會從私密金鑰輸出中省略公開金鑰元件。

-check

此選項會檢查 EC 私密或公開金鑰的一致性。

-engine id

請參閱 openssl(1) 中的「引擎選項」。此選項已過時。

-provider name
-provider-path 路徑
-propquery propq

請參閱 openssl(1) 中的「提供者選項」provider(7)property(7)

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

將參數編碼變更為 明確

openssl ec -in key.pem -param_enc explicit -out keyout.pem

將點轉換形式變更為 壓縮

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 The OpenSSL Project Authors。保留所有權利。

根據 Apache 授權條款 2.0 (「授權條款」) 授權。您不得在不遵守授權條款的情況下使用此檔案。您可以在原始程式碼散佈中的 LICENSE 檔案中取得一份副本,或在 https://www.openssl.org/source/license.html 取得。