Crypt::RFC8188 - Implement RFC 8188 HTTP Encrypted Content Encoding
use Crypt::RFC8188 qw(ece_encrypt_aes128gcm ece_decrypt_aes128gcm); my $ciphertext = ece_encrypt_aes128gcm( $plaintext, $salt, $key, $private_key, $dh, $auth_secret, $keyid, $rs, ); my $plaintext = ece_decrypt_aes128gcm( # no salt, keyid, rs as encoded in header $ciphertext, $key, $private_key, $dh, $auth_secret, );
This module implements RFC 8188, the HTTP Encrypted Content Encoding standard. Among other things, this is used by Web Push (RFC 8291).
It implements only the aes128gcm (Advanced Encryption Standard 128-bit Galois/Counter Mode) encryption, not the previous draft standards envisaged for Web Push. It implements neither aesgcm nor aesgcm128.
aes128gcm
aesgcm
aesgcm128
Exportable (not by default) functions:
Arguments:
The plain text.
A randomly-generated 16-octet sequence. If not provided, one will be generated. This is still useful as the salt is included in the ciphertext.
A secret key to be exchanged by other means.
The private key of a Crypt::PK::ECC Prime 256 ECDSA key.
If the private key above is provided, this is the recipient's public key of an Prime 256 ECDSA key.
An authentication secret.
If provided, the ID of a key to be looked up by other means.
The record size for encrypted blocks. Must be at least 18, which would be very inefficient as the overhead is 17 bytes. Defaults to 4096.
All as above. $salt, $keyid, $rs are not given since they are encoded in the ciphertext.
$salt
$keyid
$rs
https://github.com/web-push-libs/encrypted-content-encoding
RFC 8188 - Encrypted Content-Encoding for HTTP (using aes128gcm).
Ed J, <etj at cpan.org>
<etj at cpan.org>
Copyright (C) Ed J
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Crypt::RFC8188, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Crypt::RFC8188
CPAN shell
perl -MCPAN -e shell install Crypt::RFC8188
For more information on module installation, please visit the detailed CPAN module installation guide.