5个版本 (重大更新)
0.5.0 | 2022年12月8日 |
---|---|
0.4.0 | 2022年11月29日 |
0.3.0 | 2020年1月18日 |
0.2.0 | 2019年12月30日 |
0.1.0 | 2019年9月21日 |
#2291 在 密码学
每月 22 次下载
51KB
905 行
HTTP签名规范化
一个将签名任务留给你自己的HTTP签名库
Http Signature Normalization是一个提供用户提供的签名和验证的HTTP签名的最小依赖项crate。API很简单;有一系列创建和验证步骤,使用类型来确保合理的使用。
use chrono::Duration;
use http_signature_normalization::Config;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config {
expires_after: Duation::secs(5),
};
let headers = BTreeMap::new();
let signature_header_value = config
.begin_sign("GET", "/foo?bar=baz", headers)
.sign("my-key-id".to_owned(), |signing_string| {
// sign the string here
Ok(signing_string.to_owned()) as Result<_, Box<dyn std::error::Error>>
})?
.signature_header();
let mut headers = BTreeMap::new();
headers.insert("Signature".to_owned(), signature_header_value);
let verified = config
.begin_verify("GET", "/foo?bar=baz", headers)?
.verify(|sig, signing_string| {
// Verify the signature here
sig == signing_string
});
assert!(verified)
}
贡献
欢迎您为任何发现的问题提交问题。请注意,任何贡献的代码都将根据AGPLv3授权。
许可协议
版权所有 © 2022 Riley Trautman
HTTP Signature Normalization是免费软件:您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或(根据您的选择)许可证的任何后续版本。
HTTP Signature Normalization的发布是为了希望它将是有用的,但没有任何保证;甚至没有关于适销性或特定用途的暗示保证。有关更多详细信息,请参阅GNU通用公共许可证。此文件是HTTP Signature Normalization的一部分。
您应该已经收到了HTTP Signature Normalization随附的GNU通用公共许可证的副本。如果没有,请参阅http://www.gnu.org/licenses/。
依赖项
~590KB