View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006042||Taler||wallet (WebExtensions)||public||2020-01-12 22:28||2020-01-17 00:35|
|Reporter||Christian Grothoff||Assigned To||gmarcos87|
|Platform||i7||OS||Debian GNU/Linux||OS Version||squeeze|
|Product Version||git (master)|
|Target Version||0.7||Fixed in Version|
|Summary||0006042: test webextensions wallet on GNU IceCat|
|Description||We should test the Webex wallet on IceCat, fix it if it is broken, and if it works list GNU IceCat on the wallet Website. Requested by RMS. Marcos should do this.|
|Tags||No tags attached.|
After debugging the serviceworker I found that the problem with the Taler web extension is that it uses BigInt, which is not available in the current version of IceCat.
There may be other probelamas, but this is the first blocker I found.
The wallet uses the big-integer package (https://www.npmjs.com/package/big-integer), which should only use native BigInt in the environments that support it, and fall back to a custom implementation of big integers on older browsers.
Could you please check where exactly the native BigInt is used and why the big-integer library doesn't fall back to its custom implementation?
BigInt is used in wallet-core/src/crypto/workers/cryptoImplementation.ts (amountToBuffer and timestampToBuffer). The funny thing is that the lines used seem to affect what the functions return, but it does! If I remove these lines the signature validation process fails.
These two functions also uses DataView.prototype.setBigUint64() which has existed since Firefox version 68 and has no external library to replace it.
I don't quite understand what you wrote. Of course these functions all affect signature generation and verification!
The big-integer *should* have a fallback implementation for older browsers, and we need to find out why it is not used!
The library is the one that is not being used in that file. It's called the native method, the big-integer package is not even imported at https://git.taler.net/wallet-core.git/tree/src/crypto/workers/cryptoImplementation.ts
I can do some debugging but solving this part of the implementation is beyond my current understanding of the code.
|2020-01-12 22:28||Christian Grothoff||New Issue|
|2020-01-12 22:28||Christian Grothoff||Status||new => assigned|
|2020-01-12 22:28||Christian Grothoff||Assigned To||=> Florian Dold|
|2020-01-12 22:28||Christian Grothoff||Assigned To||Florian Dold =>|
|2020-01-12 22:30||Christian Grothoff||Relationship added||related to 0006043|
|2020-01-14 10:23||Christian Grothoff||Assigned To||=> gmarcos87|
|2020-01-14 17:20||gmarcos87||Note Added: 0015268|
|2020-01-14 23:26||Florian Dold||Note Added: 0015270|
|2020-01-15 12:36||gmarcos87||Note Added: 0015271|
|2020-01-15 12:49||gmarcos87||Note Edited: 0015271||View Revisions|
|2020-01-15 12:52||Florian Dold||Note Added: 0015272|
|2020-01-15 16:20||gmarcos87||Note Added: 0015273|
|2020-01-17 00:35||Christian Grothoff||Target Version||0.6 => 0.7|