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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants