Bitcoin Forum
November 07, 2024, 04:19:36 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Signing messages in Armory  (Read 5819 times)
LogicalUnit (OP)
Sr. Member
****
Offline Offline

Activity: 299
Merit: 250


View Profile
July 09, 2013, 12:20:59 PM
 #1

Hello,

Can someone explain to me how to sign a message in Armory? I want to prove that I own a particular address. I'm trying to use the Message Signing tool, but it's either crashing or not generating a signature.


dchou
Member
**
Offline Offline

Activity: 97
Merit: 10


View Profile
August 02, 2013, 06:26:21 PM
 #2

Did you ever figure out how to do this?

I'm running the Offline Ubuntu version and am also unable to sign a message.

I select my address, add some message text and click "Sign Message"  -  Nothing happens.

When I create the signature block, it is copied to clipboard.
LogicalUnit (OP)
Sr. Member
****
Offline Offline

Activity: 299
Merit: 250


View Profile
August 06, 2013, 06:05:51 AM
 #3

Nope, never figured this one out. . .
daemondazz
Sr. Member
****
Offline Offline

Activity: 448
Merit: 250



View Profile
August 07, 2013, 02:14:10 PM
 #4

As per a private message sent to LogicalUnit, I got Armory to work under Ubuntu 12.04 with a forwarded X session to my Windows machine. I've generated the following:

Code:
-----BEGIN-SIGNATURE-BLOCK-------------------------------------
Address:    19yh5Sh9sThSruPWLPR2wTpMYWShX8zup
Message:    "5b25d2cbb44b82b0"
PublicKey:  0464450338019a646e915423cccc0b1651b8304f71b34d970f
            4028eaddbc1435f7ee5a4f181fac70fb8e7611849f9fbc3de1
            a508f6a3cac4e2387da3ccd3c44ca4
Signature:  5bc25df214da434d8ec61cf08023d153a3d5f9817cd0fc94bd
            a8b84002ad62d45858d001b804f3cc8ed0cd9fd261a93ff96b
            010fac009fd379d60172bf86445d
-----END-SIGNATURE-BLOCK---------------------------------------

In order to get the private key, I had to go in to wallet properties, then backup individual keys, enter my wallet password to unlock, select and copy the PrivBase58 encoding of my key, then go into the message signing window, paste the private key into the first field, enter the message (i just clicked insert random - it entered "5b25d2cbb44b82b0" and then click on create signature block twice.

I really don't like the idea of copying the private key to the clipboard, but i couldn't see how you are meant to get the private key into the message signing window, as the get keys is greyed out...

To verify the signed message, click import sig block and paste in the above, it will then give you a pop-up message saying it passed (or failed i guess).

Computers, Amateur Radio, Electronics, Aviation - 1dazzrAbMqNu6cUwh2dtYckNygG7jKs8S
daemondazz
Sr. Member
****
Offline Offline

Activity: 448
Merit: 250



View Profile
August 07, 2013, 02:24:03 PM
 #5

Ahh, now I see the proper workflow, although there's a bug:

1. Open message signing window
2. Paste in address to sign with, or use address book icon to select one
3. Click on the calculate button, it now says "this key is in one of your wallets"
4. Click the get keys from wallets button (this is where the bug is in my copy)
5. Enter message
6. Click sign message or create signature block

The issue at number 4, is I get a python stack trace trying to display the dialog to enter the wallet password:

Code:
Traceback (most recent call last):
  File "/usr/share/armory/qtdialogs.py", line 9331, in signMsg
    dlg = DlgUnlockWallet(wlt, self.main, 'Encrypt New Address')
  File "/usr/share/armory/qtdialogs.py", line 63, in __init__
    ttipScramble= self.main.createToolTipWidget( \
AttributeError: 'str' object has no attribute 'createToolTipWidget'

I'll have a dig into the code to see why self.main is a str object instead of the QT window handle.

Computers, Amateur Radio, Electronics, Aviation - 1dazzrAbMqNu6cUwh2dtYckNygG7jKs8S
daemondazz
Sr. Member
****
Offline Offline

Activity: 448
Merit: 250



View Profile
August 07, 2013, 02:46:22 PM
 #6

I've opened an issue on the Armory github: https://github.com/etotheipi/BitcoinArmory/issues/95

Computers, Amateur Radio, Electronics, Aviation - 1dazzrAbMqNu6cUwh2dtYckNygG7jKs8S
LogicalUnit (OP)
Sr. Member
****
Offline Offline

Activity: 299
Merit: 250


View Profile
August 08, 2013, 12:41:27 AM
 #7

Good stuff, daemondazz. Smiley
daemondazz
Sr. Member
****
Offline Offline

Activity: 448
Merit: 250



View Profile
August 08, 2013, 12:44:33 AM
 #8

Good stuff, daemondazz. Smiley

Thanks, I haven't had time to actually track back through the code yet - I don't have any experience with QT, but do have quite a bit with wxWidgets. It looks fairly similar, so if etotheipi doesn't get to it before I have a chance to, I think I should be able to work out why it's being assigned badly (might be an error string or something instead of the window handle).

Computers, Amateur Radio, Electronics, Aviation - 1dazzrAbMqNu6cUwh2dtYckNygG7jKs8S
dchou
Member
**
Offline Offline

Activity: 97
Merit: 10


View Profile
August 08, 2013, 05:43:50 AM
 #9

Thanks, that's the issue I'm having.

When I click on "Get Keys from Wallet" in Ubuntu 10.04, nothing happens.
daemondazz
Sr. Member
****
Offline Offline

Activity: 448
Merit: 250



View Profile
August 08, 2013, 10:07:04 AM
 #10

etotheipi has replied to my ticked:

Quote
I thought I had fixed that bug... I've definitely seen it before. But I haven't been too attentive to the message signing stuff because it's all getting rewritten soon anyway.

Until then, the solution is to change line 9331 from:

dlg = DlgUnlockWallet(wlt, self.main, 'Encrypt New Address')

to

dlg = DlgUnlockWallet(wlt, self.main, self.main, 'Encrypt New Address')

I will take a note of that and fix it in the next release, though the following release will probably redo all the message signing stuff to be compatible with Bitcoin-Qt.

That would be line 9331 of qtdialogs.py

Computers, Amateur Radio, Electronics, Aviation - 1dazzrAbMqNu6cUwh2dtYckNygG7jKs8S
LogicalUnit (OP)
Sr. Member
****
Offline Offline

Activity: 299
Merit: 250


View Profile
September 21, 2013, 01:46:27 AM
 #11

Has this been fixed in an official Armory release? If not, what's the procedure of doing it?
daemondazz
Sr. Member
****
Offline Offline

Activity: 448
Merit: 250



View Profile
September 21, 2013, 10:05:35 AM
 #12

Has this been fixed in an official Armory release? If not, what's the procedure of doing it?

My ticket is still open, and I'm on my tablet at the moment so it's a bit hard to check the source to confirm, but it does not appear to be fixed upstream yet.

To fix in your local copy, just open at qtdialogs.py in a text editor and update line 9331 as per above (add the second reference to self.main). You'll need to do this each time you update until it gets fixed properly.

Computers, Amateur Radio, Electronics, Aviation - 1dazzrAbMqNu6cUwh2dtYckNygG7jKs8S
LogicalUnit (OP)
Sr. Member
****
Offline Offline

Activity: 299
Merit: 250


View Profile
September 23, 2013, 06:44:20 AM
 #13

Hmm, I tried the fix you described, but still no dialog appears. Same behaviour as without the second reference to self.main.
etotheipi
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
September 25, 2013, 04:48:26 AM
 #14

I'm fairly certain that is fixed in the new testing release.  I'm pretty sure I put it in when it was first reported a long time ago, but then it took me so long to get out the new version!

https://bitcointalk.org/index.php?topic=299684.0

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
daemondazz
Sr. Member
****
Offline Offline

Activity: 448
Merit: 250



View Profile
September 25, 2013, 05:45:36 AM
 #15

Hmm, I tried the fix you described, but still no dialog appears. Same behaviour as without the second reference to self.main.

If there's a qtdialogs.pyc or qtdialogs.pyo file, you'll need to delete them (they are cached bytecode compiled files automatically created by Python).

Or give the new version a try Smiley

Computers, Amateur Radio, Electronics, Aviation - 1dazzrAbMqNu6cUwh2dtYckNygG7jKs8S
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!