10个版本

0.3.1 2024年7月15日
0.2.1 2024年3月20日
0.1.6 2022年12月20日
0.1.5 2022年8月15日
0.1.1 2021年11月23日

密码学 中排名第160

Download history · Rust 包仓库 1050/week @ 2024-04-14 · Rust 包仓库 1013/week @ 2024-04-21 · Rust 包仓库 805/week @ 2024-04-28 · Rust 包仓库 482/week @ 2024-05-05 · Rust 包仓库 586/week @ 2024-05-12 · Rust 包仓库 570/week @ 2024-05-19 · Rust 包仓库 845/week @ 2024-05-26 · Rust 包仓库 663/week @ 2024-06-02 · Rust 包仓库 863/week @ 2024-06-09 · Rust 包仓库 274/week @ 2024-06-16 · Rust 包仓库 387/week @ 2024-06-23 · Rust 包仓库 402/week @ 2024-06-30 · Rust 包仓库 385/week @ 2024-07-07 · Rust 包仓库 611/week @ 2024-07-14 · Rust 包仓库 532/week @ 2024-07-21 · Rust 包仓库 471/week @ 2024-07-28 · Rust 包仓库

每月下载量2,000

MIT/Apache

46KB
920 代码行

truelayer-signing

Rust包用于生成和验证TrueLayer API请求签名。

Crates.io Docs.rs

// `Tl-Signature` value to send with the request.
let tl_signature = truelayer_signing::sign_with_pem(kid, private_key)
    .method(Method::Post)
    .path("/payouts")
    .header("Idempotency-Key", idempotency_key)
    .body(body)
    .build_signer()
    .sign()?;

查看完整示例

先决条件

  • OpenSSL(请参阅此处的说明)。

验证webhook

可以使用 verify_with_jwks 函数验证webhook Tl-Signature 头签名。

// `jku` field is included in webhook signatures
let jku = truelayer_signing::extract_jws_header(webhook_signature)?.jku?;

// check `jku` is an allowed TrueLayer url & fetch jwks JSON (not provided by this lib)
ensure_jku_allowed(jku)?;
let jwks = fetch_jwks(jku);

// jwks may be used directly to verify a signature
truelayer_signing::verify_with_jwks(jwks)
    .method(Method::Post)
    .path(path)
    .headers(all_webhook_headers)
    .body(body)
    .build_verifier()
    .verify(webhook_signature)?;

请参阅webhook服务器示例

依赖项

~3.5–5MB
~97K SLoC