[5.0 -> main] Fix base64 encoding - take 2 #1893
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#1482 fixed base64 encoding by removing the unneeded extra
=
that variant added to base64 encoded data. However, it also updated the base64 library with a stricter one. This PR leaves the old base64 encoding/decoding library but does remove the extra=
from the base64 encoded data so non-fc base64 decoders will not claim the data is invalid.This change still breaks backward compatibility with 3.2 & 4.0
cleos/nodeos
. PRs to 3.2 (#1889) and 4.0 will be created that will allow them to work with this new base64 encoding (they will no longer expect the invalid=
character).PR #1886 reverts #1482. This PR provided an alternative fix for #1461.
Included in this PR is an optimization to the existing
base64_decode
to avoid a copy for our use-cases by returning avector<char>
instead of astring
.Included in this PR is a change to the
nodeos_run_test.py
to keep thekeosd
running with passed--leaving-running
which is useful for local testing. This was used to manually test using 3.2cleos
with 5.0.Merges
release/5.0
intomain
including #1888Resolves #1461