Elysia Tools

Browse tools, examples, visual explainers, and topic guides from one clear workspace.

Top Categories

Hubs

Language
ZHESPTRUFRDEEN

Elysia Tools

Navigation

Format Conversion

Web Push RFC 8030 Request + VAPID + RFC 8291 Payload Encryption Encoder

· Last updated:2026-09-23

Encode a complete Web Push send: RFC 8291 aes128gcm payload encryption, RFC 8292 VAPID ES256 JWT, RFC 8030 headers, APNs/FCM cross-walk and decrypt round-trip verification.

Details

What this tool helps you do

Encryption follows RFC 8291 exactly: ECDH on P-256 between an ephemeral application-server key and the subscription p256dh key, HKDF-SHA256 key combining with the auth secret ("WebPush: info" context), a random 16-byte salt, CEK/nonce derivation via "Content-Encoding" contexts, and AES-128-GCM with the RFC 8188 binary header (salt + record size + key id). The implementation reproduces the RFC 8291 §5 and draft-ietf-webpush-encryption-04 worked examples byte for byte.

Execution

Run this tool

Fill in the form, run the tool, and review the result in one place.

Samples

Examples that match this tool

Related

Continue with connected tools and hubs

Written by the Elysia Tools team

Tool usage guide

Learn when to use this tool, what it supports, and how real users apply it.

Key facts

Category
Format Conversion
Input types
textarea, select, text, number, checkbox
Output type
html
Sample coverage
4
API ready
Yes

Overview

The Web Push RFC 8030 Request, VAPID, and RFC 8291 Payload Encryption Encoder generates standard-compliant HTTP push requests by performing ECDH key exchange, HKDF derivation, and payload encryption. It produces complete RFC 8030 headers, RFC 8292 VAPID authentication JWTs, cryptographic step-by-step traces, and cross-platform header mappings for APNs and FCM.

When to use

  • Debugging or building custom Web Push backend delivery pipelines that require byte-level verification against RFC 8291 and RFC 8292 specifications.
  • Validating encrypted payload construction (aes128gcm or legacy aesgcm) and verifying round-trip decryption against client subscription keys.
  • Mapping standard RFC 8030 Web Push headers (TTL, Urgency, Topic) to equivalent Apple Push Notification service (APNs) and Firebase Cloud Messaging (FCM) dispatch headers.

How it works

  1. 1Derives the shared secret via P-256 ECDH using the subscription public key (p256dh) and an ephemeral application-server private key, combining it with the subscription auth secret using HKDF-SHA256.
  2. 2Computes the Content Encryption Key (CEK) and nonce with the provided salt, then encrypts the plaintext payload using AES-128-GCM according to the chosen content coding (RFC 8291 aes128gcm or draft-04 aesgcm).
  3. 3Generates the ES256 VAPID Authorization JWT with audience, expiration, and subject claims, formatting the full HTTP/2 request with RFC 8030 headers (TTL, Urgency, Topic).
  4. 4Outputs an interactive diagnostic report detailing cryptographic intermediates (IKM, CEK, nonce), a round-trip decrypt check, and an APNs/FCM header translation table.

Use cases

  • Verifying in-house Web Push client/server implementations against official RFC reference vectors byte for byte.
  • Diagnosing push notification delivery failures and header mismatches across Chrome, Firefox, Safari, and mobile Web Push endpoints.
  • Inspecting intermediate key material (PRK, IKM, CEK, and nonce) during cryptographic auditing and security testing.

Examples

1. Encrypting a Standard Web Push Notification (RFC 8291 aes128gcm)

Backend Engineer

Background

An engineer is implementing an order status notification service and needs to generate an encrypted push payload compatible with modern browsers.

Problem

Verify that the backend's ECDH key agreement, HKDF derivation, and RFC 8188 payload structure match standard RFC 8291 outputs.

How to use

Enter the JSON payload, paste the subscription p256dh public key and auth secret, provide ephemeral P-256 keys, and configure TTL and urgency headers.

payload: '{"title":"Order shipped","id":48291}', encoding: 'aes128gcm', ttl: 60, urgency: 'normal', vapidSub: 'mailto:[email protected]'

Outcome

Generates the complete HTTP/2 POST request body with RFC 8188 binary headers, VAPID Authorization token, and an intermediate crypto trace.

2. Debugging Legacy Push Subscriptions with Round-Trip Decryption

Full-Stack Developer

Background

A developer maintains legacy browser clients that still negotiate draft-04 aesgcm encoding and wants to verify payload decryption locally.

Problem

Ensure that legacy Encryption and Crypto-Key headers correctly correspond to the aesgcm payload and decrypt reliably on the client.

FAQ

What is the difference between aes128gcm and legacy aesgcm content codings?

aes128gcm (RFC 8291) includes the salt, record size, and public key directly in the RFC 8188 binary body header, whereas legacy aesgcm (draft-04) passes salt and public key in separate Encryption and Crypto-Key HTTP headers.

Why is the subscription auth secret required for payload encryption?

The auth secret acts as an additional HKDF salt context ('WebPush: info') during key agreement to prevent man-in-the-middle attacks and ensure only the intended receiver can derive the CEK.

How does round-trip decrypt verification work?

When you provide the receiver's private key (uaPrivateKey), the tool executes the matching client-side decryption steps to verify that the ciphertext decodes back to the original plaintext.

Are the application server private key and VAPID private key the same?

No. The application server key (asPrivateKey) is an ephemeral P-256 key used solely for ECDH payload encryption, whereas the VAPID private key is a signing key used to generate the ES256 JWT Authorization header.

What happens if I omit the optional Topic header?

Without a Topic header, the push service treats every message as independent. Providing a Topic enables message coalescing, replacing pending undelivered notifications with the newest update.

Home
Tools3201
Samples593
Visualizations465
Viewers103
Hubs233
Tags333
Images, Audio & Video657

Image, audio, and video processing, conversion, and optimization tools

Math, Date & Finance644

Calculators, numerics, date logic, statistics, and finance tools

Design & Color297

Color, layout, graphics, visual styling, and design helper tools

Text & Writing209

Writing, cleanup, formatting, extraction, and text analysis tools

Developer & Web193

Developer utilities, networking, web debugging, and automation helpers

Conversion & Encoding175

Format, file, archive, unit, and encoding conversion tools

FLAC/WAV Source Screening and Evidence Handoff
Self-Hosted Giveaway Widget Review and Embed Handoff
Stripe Promo Code Batch Review and Import Preflight
Batch Photo Culling Review and Editing Shortlist Handoff
UI Screenshot Structure Review and Development Handoff

© 2026 Elysia Tools. All rights reserved.

DocsPricingAboutTerms of ServicePrivacy PolicyCookiesContact
Python

Web Image Processing Python Samples

Web Python image processing examples using PIL/Pillow including reading, saving, resizing, and format conversion

Rust

Web Image Processing Rust Samples

Web Rust image processing examples including image read/save, scaling, and format conversion

TypeScript

Web Image Processing TypeScript Samples

Web TypeScript image processing examples including image read/save, scaling, and format conversion

Go

Web File Operations Go Samples

Web Go file operations examples including text file read/write, file copy/move, directory traversal, and file validation

Development

Data URI Generator

Convert files into Data URIs (Base64 or percent-encoded) for inlining images, fonts, and assets directly into HTML, CSS, or Markdown

Cryptography

Hash Algorithm Comparator

Hash the same input with MD5, SHA-1, SHA-256, SHA-512, BLAKE2b, and BLAKE3 at the same time and compare them side by side: output length, hex/Base64 digest, security status (broken / modern), and a relative speed benchmark. Great for teaching, choosing a hashing algorithm, or sanity-checking checksums.

Security

RSA Encrypt / Decrypt

Encrypt text with an RSA public key or decrypt ciphertext with the matching private key, using OAEP padding (SHA-1 or SHA-256). Handles long messages by chunking. Keys and data stay local. PKCS#1 v1.5 is intentionally not offered (Node disables it for decryption due to Bleichenbacher attacks).

Development

OpenTelemetry W3C traceparent / tracestate / baggage + OTLP Header Propagation Validator

Validate W3C Trace Context propagation headers end to end: traceparent (version / 16-byte trace-id / 8-byte parent-id / trace-flags), tracestate (≤32 list members, tenant keys), baggage (percent-encoded values + opaque properties), OTLP export Content-Type, the gRPC grpc-trace-context-bin 25-byte binary context — plus a two-header correlation round-trip with a random child span-id collision check.

How to use

Select aesgcm encoding, input the subscription keys along with the receiver private key, set padding bytes, and run the encoder.

payload: 'Hello legacy client', encoding: 'aesgcm', paddingBytes: 2, topic: 'chat-update', urgency: 'high'

Outcome

Produces draft-04 headers, validates the decrypt round-trip with a pass badge, and displays FCM/APNs collapse key mappings.