OpenSSL

密码学和 SSL/TLS 工具包

openssl-glossary

名称

openssl-glossary - OpenSSL 术语表

描述

算法

OpenSSL 中的加密原语,如 SHA256 摘要或 AES 加密,被称为“算法”。对于任何给定的算法,可能存在多个可供使用的实现。

crypto(7)

ASN.1,ASN1

ASN.1(“抽象语法符号一号”)是一种用于描述抽象类型和值的符号。它在 ITU-T 文档 X.680 到 X.683 中定义。

https://www.itu.int/rec/T-REC-X.680, https://www.itu.int/rec/T-REC-X.681, https://www.itu.int/rec/T-REC-X.682, https://www.itu.int/rec/T-REC-X.683

基础提供程序

一个 OpenSSL 提供程序,其中包含 OpenSSL 密钥的编码器和解码器。基础提供程序中的所有算法实现也都在默认提供程序中可用。

OSSL_PROVIDER-base(7)

解码器

解码器是一种用于将密钥和参数从某些外部格式(如 PEM 或 DER)解码的算法。

OSSL_DECODER_CTX_new_for_pkey(3)

默认提供程序

一个 OpenSSL 提供程序,其中包含最常见的 OpenSSL 算法实现。如果其他提供程序不可用,它会默认加载。基础提供程序中的所有算法实现也都在默认提供程序中可用。

OSSL_PROVIDER-default(7)

DER(“区分编码规则”)

DER 是数据的二进制编码,根据 ASN.1 规范进行结构化。这是一种常见的编码,用于加密对象,如私钥和公钥、证书、CRL 等。

它在 ITU-T 文档 X.690 中定义

https://www.itu.int/rec/T-REC-X.690

编码器

编码器是一种用于将密钥和参数编码为某些外部格式(如 PEM 或 DER)的算法。

OSSL_ENCODER_CTX_new_for_pkey(3)

显式获取

显式获取是一种获取类型(参见获取)。显式获取是通过函数调用来获取代表实现的算法对象,例如 EVP_MD_fetch(3)EVP_CIPHER_fetch(3)

获取

获取是通过查看可用的算法实现,应用选择条件(通过属性查询字符串),最后选择将要使用的实现的过程。

另见显式获取和隐式获取。

crypto(7)

FIPS 提供程序

一个 OpenSSL 提供程序,其中包含根据 FIPS 140-2 标准验证过的 OpenSSL 算法实现。

OSSL_PROVIDER-FIPS(7)

隐式获取

隐式获取是一种获取类型(参见获取)。隐式获取是使用没有关联实现的算法对象,例如 EVP_sha256(3)EVP_aes_128_cbc(3) 的返回值。使用隐式获取,会在首次使用算法时,使用默认选择条件自动获取实现。

遗留提供程序

一个 OpenSSL 提供程序,其中包含被认为不安全或不再常用的算法实现。

OSSL_PROVIDER-legacy(7)

库上下文

OpenSSL 中的库上下文由类型 OSSL_LIB_CTX 表示。可以将其视为配置选项适用的范围。如果应用程序没有显式创建库上下文,则使用“默认”上下文。许多 OpenSSL 函数可以接受库上下文作为参数。始终可以使用 NULL 值来指示默认库上下文。

OSSL_LIB_CTX(3)

MSBLOB

MSBLOB 是 Microsoft 特定的 RSA 和 DSA 密钥(私钥和公钥)的二进制格式。此形式从未使用密码保护。

空提供程序

一个 OpenSSL 提供程序,其中不包含任何算法实现。这对于阻止默认提供程序在库上下文中自动加载很有用。

OSSL_PROVIDER-null(7)

操作

操作是一组具有共同目的的 OpenSSL 函数,例如加密或摘要。

crypto(7)

PEM(“隐私增强邮件”)

PEM 是一种用于将二进制内容编码为邮件和 ASCII 友好形式的格式。内容是一系列 base64 编码的线,被自己的线上的开始/结束标记包围。例如

-----BEGIN PRIVATE KEY-----
MIICdg....
... bhTQ==
-----END PRIVATE KEY-----

可选的标题行可能出现在开始行之后,它们的存在取决于正在写入或读取的对象的类型。

对于所有 OpenSSL 用途,二进制内容应为 DER 编码结构。

这在 IETF RFC 1421 中定义

https://tools.ietf.org/html/rfc1421

PKCS#8

PKCS#8 是 ASN.1 结构的规范,OpenSSL 用它以与密钥类型无关的方式存储或传输任何私钥。有两个结构值得注意的是,一个是包含未加密形式的密钥数据的结构(称为“PrivateKeyInfo”),另一个是加密包装结构(称为“EncryptedPrivateKeyInfo”)。

这在 RFC 5208 中指定

https://tools.ietf.org/html/rfc5208

属性

属性是分类和选择算法实现的一种方式。属性是表示为字符串的键值对。例如,默认提供程序中的所有算法实现都具有属性“provider=default”。算法实现可以定义多个属性。

另见属性查询字符串。

property(7)

属性查询字符串

属性查询字符串是包含一系列属性的字符串,可用于选择算法实现。例如,查询字符串“provider=example,foo=bar”将选择来自“example”提供程序的算法,这些算法为它们定义了“foo”属性,其值为“bar”。

属性查询字符串在获取过程中使用。参见获取。

property(7)

提供程序

OpenSSL 中的提供程序是将算法实现分组在一起的组件。提供程序可以来自 OpenSSL 本身或来自第三方。

provider(7)

PVK

PVK 是 Microsoft 特定的 RSA 和 DSA 私钥的二进制格式。此形式可以使用密码保护。

SubjectPublicKeyInfo

SubjectPublicKeyInfo 是一个 ASN.1 结构,OpenSSL 用它以与密钥类型无关的方式存储和传输任何公钥。

这在证书规范 RFC 5280 中指定

https://tools.ietf.org/html/rfc5280

历史

此术语表是在 OpenSSL 3.0 中添加的。

版权所有 2020-2022 OpenSSL 项目作者。保留所有权利。

根据 Apache 许可证 2.0 版(“许可证”)授权。除非符合许可证,否则您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获取许可证副本。