Skip to content
1 viewer

rust 1,847,280 · typescript 232,434 · javascript 131,101 · python 19,227 · 6,362 files · digest 755e2ee30522 · built in 2.3 s · crystals off

cre8-util-webpush crates cargo crate

RFC 8030 / 8291 / 8292 web push delivery. ECDH, HKDF-SHA256, AES-128-GCM, and VAPID JWT signing.

crates/cre8-util-webpush · level 4 · 793 lines (625 code) · 5 files · 44 fns (15 tests) · cyclomatic Σ 62

3workspace deps
2direct dependents
100transitive dependents
3calls out
6calls in
39.1call-graph weight
0.0%exact crystals

Neighbourhood

Left: crates that declare this one. Right: crates it declares (dev-dependencies included). Edge width grows with resolved calls.

Declared but never named in this crate's source: cre8-platform-env (normal).

Files

lowhigh

File call graph

Resolved calls between this crate's files, callers left of callees.

Heaviest functions

By call-graph weight (PageRank; 1.0 is the average function). 44 functions in all.

functionkindlinescyclomaticcallerscalleesweightcrystal
generatesrc/vapid.rs:27fn1211304.2
sign_vapid_jwtsrc/jwt.rs:22fn362311.5
send_pushsrc/send.rs:67fn271551.4
Urgency::header_valuesrc/send.rs:35method84201.4
single_record_padded_plaintextsrc/body.rs:204fn61101.3
serve_oncesrc/send.rs:186fn443501.3
audience_from_endpointsrc/send.rs:154fn146201.3
hkdf_sha256src/body.rs:216fn61301.3
ephemeral_public_key_bytessrc/body.rs:188fn71101.1
encrypt_bodysrc/body.rs:79fn111231
encrypt_single_recordsrc/body.rs:147fn151211
fake_subscriptionsrc/send.rs:179fn61410.9
decode_public_keysrc/vapid.rs:43fn51200.9
aes128gcm_nonce_arraysrc/body.rs:211fn31200.9
EncryptedBody::to_http_bodysrc/body.rs:65method91100.8
decode_p256dhsrc/body.rs:163fn92200.8
decode_auth_secretsrc/body.rs:173fn92200.8
parse_ua_public_keysrc/body.rs:183fn41200.8
push_base_headerssrc/send.rs:120fn71110.8
push_bodysrc/send.rs:128fn152120.8
encryption_materialsrc/body.rs:91fn141140.8
subscriber_keyssrc/body.rs:106fn61130.8
webpush_prk_infosrc/body.rs:196fn71100.8
push_audiencesrc/send.rs:100fn31110.7
push_vapid_tokensrc/send.rs:104fn41110.7
push_request_partssrc/send.rs:109fn101120.7
push_response_resultsrc/send.rs:144fn94100.7
fake_subscribersrc/body.rs:229fn61110.7
ephemeral_key_pairsrc/body.rs:113fn51110.7
derive_prk_keysrc/body.rs:119fn51120.7
random_saltsrc/body.rs:125fn142100.7
derive_content_keyssrc/body.rs:140fn61120.7
encrypts_with_expected_shapesrc/body.rs:237fn81020.5
body_validation_helpers_reject_bad_inputssrc/body.rs:247fn101040.5
body_crypto_helpers_report_bad_key_lengths_and_hkdf_limitssrc/body.rs:259fn51020.5
jwt_has_three_segments_and_decodable_claimssrc/jwt.rs:65fn211020.5
jwt_rejects_bad_private_keys_and_caps_lifetimesrc/jwt.rs:88fn271030.5
urgency_headers_and_audience_parsing_cover_wire_valuessrc/send.rs:232fn121020.5
send_push_sends_empty_poke_with_vapid_headerssrc/send.rs:246fn161040.5
send_push_encrypts_non_empty_payloadsrc/send.rs:264fn131040.5

Outside the workspace

aes-gcm anyhow base64 getrandom hkdf p256 serde serde_json sha2 thiserror