Revision history for VAPID

0.01    Date/time
        First version, released on an unsuspecting world.

0.03    2020/10/18
	- Update Makefile dependencies with latest versions

1.00    2020/10/24
	- Add POD description
	- Update Makefile with links to github

1.01    2020/12/02
        - Update POD - create a Perl example for STEP 6 - Jan Kasprzak <YENYA>
	- Update POD - state the purpose of manifest.json in STEP 4 - Jan Kasprzak <YENYA>
	- rename the $header hash to $authorization_headers to be more descriptive - Jan Kasprzak <YENYA>

1.02    2025/01/04
	- Fix typo in pod

1.06    2026/07/01
	- Fix PAX headers

2.00	2026/09/05
	- encrypt_payload now produces RFC 8291 message encryption over the
	  RFC 8188 aes128gcm content encoding, which is what browsers
	  implement. It previously produced Content-Encoding: aesgcm -
	  draft-ietf-webpush-encryption-04, the scheme RFC 8291 replaced 
	- build_push_request sends aes128gcm with the RFC 8292 single-header
	  Authorization form. encoding => 'aesgcm' now dies rather than being
	  ignored.
	- The RFC 8292 single-header form spelled "vapid t=" as "vapit t=", so
	  a conformant push service refused it. t/01-test.t asserted the typo.
	- generate_vapid_keys padded a short key with the character "0" (0x30)
	  instead of a NUL byte, producing a different key
	- The JWT audience dropped a non-default port from the endpoint
	- validate_expiration_key was exported and never defined
	- validate_subscription now checks that p256dh decodes to 65 bytes and
	  auth to 16, before either reaches import_key_raw
	- t/02-rfc-vectors.t carries the worked examples from RFC 8291 section
	  5 and appendix A, and RFC 8292 section 2.4
