View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0009617 | Taler | specification | public | 2025-03-13 10:40 | 2025-03-13 14:37 |
Reporter | reynir | Assigned To | Christian Grothoff | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | git (master) | ||||
Target Version | 1.0 | Fixed in Version | 1.0 | ||
Summary | 0009617: Deviations from Crockford's base-32 | ||||
Description | In the documentation it is mentioned that Crockford's base-32 is used with the deviation that 'U' is considered the same as 'V' with a link to Crockford's web page on base-32. Looking at the GNUnet 0.23.0 implementation in src/lib/util/strings.c it seems there are more differences: - a minor nit pick, but 'u' is as well considered the same as 'V' - Crockford's base-32 allows inserting dashes ('-') anywhere into the encoded string. They don't have any significance. They are not accepted by GNUnet - Crockford's base-32 has an (in my opinion underspecified) optional checksum at the end which allows for extra symbols ('*', '~', '$', '=', 'U'/'u'). This is not implemented by GNUnet (and the 'U'/'u' conflicts with the 'V' alias). Please excuse me if GNU Taler is using a different implementation of base-32 - it's a lot of code to search through :-) https://docs.taler.net/core/api-common.html#binary-data | ||||
Additional Information | It seems a lot of implementations of Crockford's base-32 deviate from the specification by not allowing dashes and/or not implementing checksums. However, the documentation links to Crockford's own specification. | ||||
Tags | No tags attached. | ||||
|
The text says 'u' == 'v' -- and Crockford/base32 is *always* case-insensitive. ;-). You did find the correct implementation. We should improve the spec to highlight the other differences you pointed out better. |
|
I clarified this in the documentation. |
Date Modified | Username | Field | Change |
---|---|---|---|
2025-03-13 10:40 | reynir | New Issue | |
2025-03-13 10:40 | reynir | Status | new => assigned |
2025-03-13 10:40 | reynir | Assigned To | => Christian Grothoff |
2025-03-13 14:29 | Christian Grothoff | Note Added: 0024193 | |
2025-03-13 14:37 | Christian Grothoff | Status | assigned => resolved |
2025-03-13 14:37 | Christian Grothoff | Resolution | open => fixed |
2025-03-13 14:37 | Christian Grothoff | Fixed in Version | => 1.0 |
2025-03-13 14:37 | Christian Grothoff | Note Added: 0024194 | |
2025-03-13 14:37 | Christian Grothoff | Product Version | => git (master) |
2025-03-13 14:37 | Christian Grothoff | Target Version | => 1.0 |