Skip to content

Conversation

sleptor
Copy link
Contributor

@sleptor sleptor commented May 15, 2024

Related to #397

After replacing the spooky-labs/base64url library with another one, you lost backward compatibility since the new library can't decode standard base64 (non-URL safe). Also, the new library is much slower since it uses a pure PHP implementation of the base64 decoding algorithm.

This PR contains tests only, which are now falling on the master branch.

I would to borrow code here (from the old library) https://github.com/Spomky-Labs/base64url/blob/v2.x/src/Base64Url.php
and place it directly in the package, and refactor the code, of course.

The ideal solution would be to extract Base64 encoder as a dependency while adding the possibility of passing a custom encoder as a parameter.

Pseudo-code:

$myEncoder = new StandardBase64OnlyEncoder() $wp = new WebPush(); $wp->setBase64Encoder($myEncoder); 

However, it will require deep refractory; for example, the Encryption class must not be static anymore.

@Minishlink Minishlink force-pushed the base64_compatibility branch from 10a359d to b902abf Compare June 18, 2024 16:18
@Minishlink
Copy link
Member

Thanks! I reverted the problematic PR and will merge this in case there is enough arguments to switch over to paragonie (or adding this base64 encode/decode interface)

@Minishlink Minishlink merged commit 9d36211 into web-push-libs:master Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants