15个版本

0.0.15 2024年4月12日
0.0.14 2024年3月14日
0.0.8 2024年2月29日

#1091 in 加密学

Download history 41/week @ 2024-04-13 1/week @ 2024-04-20 1/week @ 2024-05-04 11/week @ 2024-05-11 14/week @ 2024-05-18 3/week @ 2024-05-25 7/week @ 2024-06-01 1/week @ 2024-06-08 6/week @ 2024-06-15 1/week @ 2024-06-22 4/week @ 2024-06-29 39/week @ 2024-07-06 31/week @ 2024-07-27

每月 70次下载

MIT许可证

155KB
3K SLoC

httpsig-hyper

httpsig-hyper httpsig-hyper

示例

您可以在./examples中运行基本示例,如下所示。

签名并验证请求

% cargo run --example hyper-request

签名并验证响应

% cargo run --example hyper-response

注意事项

请注意,即使将“content-digest”头指定为签名中覆盖的组件之一,httpsig-hyper的验证过程也不会自动验证消息正文。也就是说,它只检查签名和消息组件之间的一致性。

如果您需要在“content-digest”包含在“signature-input”头中时验证给定消息的正文,您需要按照如下方式调用verify_content_digest()函数。

// first verifies the signature according to `signature-input` header
let public_key = PublicKey::from_pem(EDDSA_PUBLIC_KEY).unwrap();
let signature_verification = req.verify_message_signature(&public_key, None).await;
assert!(verification_res.is_ok());

// if needed, content-digest can be verified separately (only if content-digest header is included in the header)
let verified_request = request_from_sender.verify_content_digest().await;
assert!(verified_request.is_ok())

在加密学的背景下,签名输入中覆盖的“content-digest”在签名验证过程中得到验证。因此,验证“content-digest”的哈希值。为了检查“content-digest”是否正确与消息正文绑定,我们需要单独运行哈希过程。

依赖项

~9.5MB
~175K SLoC