View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003765 | Taler | wallet (WebExtension) | public | 2015-04-11 17:10 | 2019-12-26 21:37 |
Reporter | Christian Grothoff | Assigned To | Marcello Stanisci | ||
Priority | urgent | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Platform | i7 | OS | Debian GNU/Linux | OS Version | squeeze |
Product Version | git (master) | ||||
Target Version | 0.0 | Fixed in Version | 0.0 | ||
Summary | 0003765: wallet needs to support RSA blind signature operations | ||||
Description | While we don't (technically) need the signing, the wallet must have unblinding and verification of the signatures. Naturally, signing would still be good to have for testing. | ||||
Tags | No tags attached. | ||||
related to | 0003766 | closed | Christian Grothoff | Should offer crypto-compatibility /test API |
child of | 0003761 | closed | Marcello Stanisci | wallet needs to support /keys to obtain mint denomination and signing keys |
|
Marcello, why did you mark this one as resolved? Wasn't this the issue we said you should re-assign to me, because the RSA public key needs to be known to the client and is not? |
|
I've now updated the /test/rsa API to allow you to fetch the RSA public key separately. So now you need to 1) HTTP GET /test/rsa/get to fetch the public key, 2) blind the value to sign using the RSA public key and blinding factor (you create the value and blinding factor) 3) HTTP POST /test/rsa/sign the blinded value, receiving a blind signature 4) extract the RSA signature and verify it against the public key from (1). |
|
Hi Christian, I marked that as resolved because I wrote some tests to blind-sign-unblind-verify locally in the extension. I am having some issue in decoding the public key the mint sends back. Something must be broken with the base32 decoding function. In any case, there is a declaration like: static struct GNUNET_CRYPTO_rsa_PrivateKey *rsa_pk; in top of the taler-mint-httpd_test.c file. And then in the handler something like if(rsa_pk == NULL) /* create keys and send the public one back */ Maybe the mint is compiled with some flag that sets to NULL uninitialized variables (though from a quick look to .am's and .ac's that doesn't seem the case). Anyway, running a mint with that variable explicitly set to NULL didn't solved. Can you confirm that this is not a problem such that the extension gets a public key that is, in some way, broken? Sorry for the delay and for the misunderstanding. |
|
If you resolve a bug, always put into the final bugnote as to *why* you think it is resolved (possibly just the revision in which you fixed it, but some note is needed). And yes, we need to then now figure out why the public key doesn't decode -- easier to test in this testcase than in the "big" /keys fetch. The rsa_pk will be initialized to NULL per default, so it is OK to not set it non-NULL explicitly. So that's not the issue. However, it is of course still possible that the mint returns a malformed string for *other* reasons. One thing to do for sure is to add encode/decode printf's to the mint's test/ handlers and to your JavaScript so that we can compare. |
|
The problem is unlikely to be in the mint. I am experiencing the following situation: let b be a binary value and b' = base32(b). if I decode b' getting c = dec(b') and then I encode c getting c' = base32(c), then c' != b'. |
|
Solved. The problem was that I gave the rsa public key to the verifying routine as it was after base32 decoding. So calling GNUNET_CRYPTO_rsa_public_key_decode() on the decoded key, and then using that further decoded key to verify the signature worked out. That was not immediately suspicable just by reading the comments regarding the functions on gnunetutil_crypto library because functions such as GNUNET_CRYPTO_rsa_public_key_encode() are described to be suitable for storing the key in a file. So as of now any testcase runs fine. |
|
Please 'resolve' bugs if they are fixed... |
|
fixed in 58ccf8d2afd0243363345922467459c1e7a03ac1 |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-04-11 17:10 | Christian Grothoff | New Issue | |
2015-04-11 17:10 | Christian Grothoff | Status | new => assigned |
2015-04-11 17:10 | Christian Grothoff | Assigned To | => Marcello Stanisci |
2015-04-11 17:10 | Christian Grothoff | Relationship added | child of 0003761 |
2015-04-11 17:39 | Christian Grothoff | Relationship added | related to 0003766 |
2015-06-30 10:13 | Marcello Stanisci | Status | assigned => resolved |
2015-06-30 10:13 | Marcello Stanisci | Resolution | open => fixed |
2015-06-30 10:16 | Christian Grothoff | Fixed in Version | => 0.0 |
2015-06-30 21:14 | Christian Grothoff | Note Added: 0009384 | |
2015-06-30 21:30 | Christian Grothoff | Note Added: 0009385 | |
2015-06-30 21:30 | Christian Grothoff | Status | resolved => assigned |
2015-07-01 21:04 | Marcello Stanisci | Note Added: 0009390 | |
2015-07-01 22:01 | Christian Grothoff | Note Added: 0009391 | |
2015-07-02 10:08 | Marcello Stanisci | Note Added: 0009392 | |
2015-07-02 14:47 | Marcello Stanisci | Note Added: 0009393 | |
2015-07-06 22:20 | Christian Grothoff | Note Added: 0009397 | |
2015-07-07 13:57 | Marcello Stanisci | Note Added: 0009398 | |
2015-07-07 13:57 | Marcello Stanisci | Status | assigned => resolved |
2015-07-07 22:07 | 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) |