Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add bech32_mod for double public key encoding/decoding #133

Merged
merged 39 commits into from
Dec 4, 2023
Merged

Add bech32_mod for double public key encoding/decoding #133

merged 39 commits into from
Dec 4, 2023

Conversation

gogoex
Copy link
Collaborator

@gogoex gogoex commented Nov 25, 2023

This is an intermediate step to address the first 2 tasks in issue #122:

This change adds bech32_mod::Encode that is designed to encode 165-byte 5-bit input vector (after 8-bit to 5-bit conversion and inserting 1-byte separator, 96-byte double public key with 2-byte HRP becomes 165-byte long), and bech32_mod::Decode that is capable of perfectly detecting up to 5 errors with helper functions to convert betwen 8-bit based vector to 5-bit based vector and vice versa.

The process of finding a generator polynomial that is capable of the desired detection capability is discussed in doc/bech32-mod-gen-poly in detail.

@aguycalled
Copy link
Collaborator

LGTM
I would also add support for encoding/decoding from/to blast::DoublePublicKeys in the class DestinationEncoder and the function DecodeDestination located in the key_io.cpp file. Although we can do it in a separate PR too if you prefer.

@gogoex
Copy link
Collaborator Author

gogoex commented Nov 26, 2023

Sure. I added functions to encode/decode a double public key to key_io.cpp. Since DestinationEncoder is not exposed to outside, I added the functions directly under key_io.cpp.

@mxaddict
Copy link
Collaborator

Is this PR ready for final review?

@gogoex
Copy link
Collaborator Author

gogoex commented Dec 4, 2023

@mxaddict Yes. Sorry to the late response.
@aguycalled Regarding the key_io.cpp change, can we do it a separate PR?

@aguycalled aguycalled merged commit 9177239 into nav-io:master Dec 4, 2023
14 of 16 checks passed
@gogoex gogoex deleted the bech32-mod-2 branch February 25, 2024 06:42
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.

3 participants