跳到主要内容

SignatureVerificationAlgorithm

搜索

特性 SignatureVerificationAlgorithm 

Source
pub trait SignatureVerificationAlgorithm:
    Send
    + Sync
    + Debug {
    // Required methods
    fn verify_signature(
        &self,
        public_key: &[u8],
        message: &[u8],
        signature: &[u8],
    ) -> Result<(), InvalidSignature>;
    fn public_key_alg_id(&self) -> AlgorithmIdentifier;
    fn signature_alg_id(&self) -> AlgorithmIdentifier;

    // Provided methods
    fn fips_status(&self) -> FipsStatus { ... }
    fn fips(&self) -> bool { ... }
}
展开描述

一种抽象的签名验证算法。

对于每对所支持的公钥类型(通过 public_key_alg_id() 标识) 与 signatureAlgorithm(通过 signature_alg_id() 标识),都需要这样一个实现。 注意,这两个 AlgorithmIdentifier 都包含参数编码, 因此对于每一种可能的公钥或签名参数,都需要单独的 SignatureVerificationAlgorithm

Debug 实现应以人类可读的形式(即不要以编码字节形式)列出公钥算法标识符与 签名算法标识符,并附上实现库的名称(以区分同一算法的不同实现)。

必需方法§

Source

fn verify_signature( &self, public_key: &[u8], message: &[u8], signature: &[u8], ) -> Result<(), InvalidSignature>

验证签名。

public_key 是取自某个 SubjectPublicKeyInfo 编码的 subjectPublicKey 值, 不可信。该密钥的 subjectPublicKeyInfopublic_key_alg_id() 所返回的 AlgorithmIdentifier 相匹配。

message 是据称用于计算签名的数据。 该数据尚未哈希;若所实现的算法要求哈希,trait 函数的实现方需自行完成哈希。

signature 是据称针对 message 计算出的签名。

仅当 signaturemessage 的合法签名时,返回 Ok(())

若签名无效(包括 public_key 编码无效的情况),则返回 Err(InvalidSignature)。 没有必要也无法产生比这更具体的错误。

Source

fn public_key_alg_id(&self) -> AlgorithmIdentifier

返回一个 AlgorithmIdentifier:只有当某个公钥的 subjectPublicKeyInfo 值与之相等时, 本 SignatureVerificationAlgorithm 才可用于该公钥的签名验证。

Source

fn signature_alg_id(&self) -> AlgorithmIdentifier

返回一个 AlgorithmIdentifier:只有当待验证数据上的 signatureAlgorithm 值与之相等时, 本 SignatureVerificationAlgorithm 才可用于该数据的签名验证。

提供方法§

Source

fn fips_status(&self) -> FipsStatus

返回本算法或实现的 FIPS 状态。

Source

fn fips(&self) -> bool

若本实现由 FIPS 批准的实现支撑,则返回 true

实现者§