View Issue Details

IDProjectCategoryView StatusLast Update
0003758Talerwallet (WebExtension)public2019-12-26 21:37
ReporterChristian Grothoff Assigned ToMarcello Stanisci  
PriorityhighSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version0.0Fixed in Version0.0 
Summary0003758: need implementation of SHA-512
DescriptionSignatures are made over values hashed using SHA-512. Thus, we need a SHA-512 implementation/API/wrapper in the wallet.
TagsNo tags attached.

Relationships

related to 0003766 closedChristian Grothoff Should offer crypto-compatibility /test API 
child of 0003762 closedMarcello Stanisci wallet needs to support /withdraw/sign to withdraw coins 
child of 0003759 closedMarcello Stanisci need HKDF facility for key derivation in Wallet 
child of 0003757 closedChristian Grothoff need (GNUnet-compatible) implementations of ECDSA (with RFC 6979) 
child of 0003754 closedMarcello Stanisci need (GNUnet-compatible) implementations of EdDSA for browser-based wallet 

Activities

Christian Grothoff

2015-04-11 17:26

manager   ~0009069

As this is likely one of the first ones we will implement, I'm adding some links on "how to do crypto in Firefox extensions" here.

Basically, this (note: from 2012)
http://blog.peschla.net/2012/02/public-key-cryptography-in-mozilla-extensions/
says that the standard is to use js-ctypes (
https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes) to call libnss (mozilla's crypto library, implementing TLS-primitives).

The "modern" way is obviously the (2014) Web Cryptography API:
http://www.w3.org/TR/WebCryptoAPI/, which in principle is great, but I'm not sure FireFox supports Curve25519 _yet_. Still, this may happen "anytime now", so maybe that'll be OK (see also https://www.w3.org/Bugs/Public/show_bug.cgi?id=25839).

In the meantime, I suspect the answer is that we define an internal API, and where possible bind it against the Web Crypto and where not, against JS-implementation. For Curve25519 implementations, see http://ianix.com/pub/curve25519-deployment.html

Christian Grothoff

2015-04-18 18:37

manager   ~0009094

Here is another idea: use emscripten to compile libgnunetutil and libtalerutil to JavaScript, and then take all of the basics from there:

http://kripken.github.io/emscripten-site/

Note that this is what amatus is already doing for gnunet-web:

https://github.com/amatus/gnunet-web/

I *suspect* his needs for Chrome come from the GNUnet-service architecture (IPC!), so for Taler this should even be sufficiently portable.

Issue History

Date Modified Username Field Change
2015-04-11 16:49 Christian Grothoff New Issue
2015-04-11 16:53 Christian Grothoff Category wallet => wallet (python command-line)
2015-04-11 16:54 Christian Grothoff Category wallet (python command-line) => wallet (browser-based)
2015-04-11 16:57 Christian Grothoff Relationship added child of 0003762
2015-04-11 17:11 Christian Grothoff Relationship added child of 0003759
2015-04-11 17:12 Christian Grothoff Relationship added child of 0003757
2015-04-11 17:12 Christian Grothoff Relationship added child of 0003754
2015-04-11 17:26 Christian Grothoff Note Added: 0009069
2015-04-11 17:26 Christian Grothoff Assigned To => Marcello Stanisci
2015-04-11 17:26 Christian Grothoff Status new => assigned
2015-04-11 17:39 Christian Grothoff Relationship added related to 0003766
2015-04-18 18:37 Christian Grothoff Note Added: 0009094
2015-06-25 15:27 Marcello Stanisci Status assigned => resolved
2015-06-25 15:27 Marcello Stanisci Resolution open => fixed
2015-06-25 15:30 Christian Grothoff Fixed in Version => 0.0
2015-06-25 15:31 Christian Grothoff Status resolved => closed
2019-12-26 21:37 Florian Dold Category wallet (browser-based) => wallet (WebExtensions)
2023-04-13 20:37 Florian Dold Category wallet (WebExtensions) => wallet (WebExtension)