- From: Brent Shambaugh <brent.shambaugh@gmail.com>
- Date: Tue, 29 Mar 2022 16:22:37 -0500
- To: Credentials Community Group <public-credentials@w3.org>
- Message-ID: <CACvcBVoTkYvN3AR+6X62zTHnLkGJhqGVifyVUa53Y9TC3rdagw@mail.gmail.com>
There is an issue with the did-jwt library that may need a breaking change
to fix. See (https://github.com/decentralized-identity/did-jwt/issues/222)
and/or Consider this exmaple:
A 64 character, 32 bit hex string representing a private key is written as:
040f1dbf0a2ca86875447a7c010b0fc6d39d76859c458fbe8f2bf775a40ad74a .
In Base58 these bits take 43 characters:
Gqzym8nfnxR5ZYZ3wZo8rvTwKTqGn5cJsbHnEhUZDPo.
This is a problem for the existing base58Matcher
const base58Matcher =
/^([1-9A-HJ-NP-Za-km-z]{44}|[1-9A-HJ-NP-Za-km-z]{88})$/
A possible solution would be to rewrite this matcher to include 43
character strings:
const base58Matcher =
/^([1-9A-HJ-NP-Za-km-z]{43,44}|[1-9A-HJ-NP-Za-km-z]{86,88})$/
However, this is a problem as the base64 matcher considers the same 43
character length, with a similar alphabet:
const base64Matcher =
/^([0-9a-zA-Z=\-_+/]{43}|[0-9a-zA-Z=\-_+/]{86})(={0,2})$/
Here are the alphabets for Base64 and Base58::
Base64 Alphabet::
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/=
Source: https://datatracker.ietf.org/doc/html/rfc4648#section-4
Base58 Alphabet::
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Source: https://datatracker.ietf.org/doc/html/draft-msporny-base58-01
-Brent Shambaugh
GitHub: https://github.com/bshambaugh
Website: http://bshambaugh.org/
LinkedIN: https://www.linkedin.com/in/brent-shambaugh-9b91259
Skype: brent.shambaugh
Twitter: https://twitter.com/Brent_Shambaugh
WebID: http://bshambaugh.org/foaf.rdf#me
Received on Tuesday, 29 March 2022 21:48:42 UTC