Bitcoin Forum
October 15, 2019, 07:59:37 AM *
News: Latest Bitcoin Core release: 0.18.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: uncompressed public key <->compressed samples  (Read 44 times)
Frodek
Member
**
Offline Offline

Activity: 118
Merit: 12


View Profile
October 07, 2019, 02:59:59 PM
 #1

Here is "How to get uncompressed public key from compressed one ?" - Python sample.
I want create converter compressed<->uncompressed in C++.
I plan using Boost multiprecision (I think, using uint256.cpp from Bitcoin sources is not enough - this have only serialization and comparision)
I search samples of pairs compressed/uncompressed or calculator online.
1571126377
Hero Member
*
Offline Offline

Posts: 1571126377

View Profile Personal Message (Offline)

Ignore
1571126377
Reply with quote  #2

1571126377
Report to moderator
1571126377
Hero Member
*
Offline Offline

Posts: 1571126377

View Profile Personal Message (Offline)

Ignore
1571126377
Reply with quote  #2

1571126377
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1571126377
Hero Member
*
Offline Offline

Posts: 1571126377

View Profile Personal Message (Offline)

Ignore
1571126377
Reply with quote  #2

1571126377
Report to moderator
BrewMaster
Hero Member
*****
Offline Offline

Activity: 1330
Merit: 814


There is trouble abrewing


View Profile
October 07, 2019, 03:22:26 PM
 #2

when you have a compressed public key you have one starting byte (0x02 or 0x03) followed by x. compute y2 first from x like this:
y2  = x3 + 7 (mod p)
then compute y by an square root algorithm, since p for bitcoin is like (p%4 = 3) you can simplify it as:
y = (y2)(p+1)/4 (mod p)

the acceptable y is:
if y is odd & first byte was 2 => -y
if y is even & first byte was 3 => -y
otherwise y

for examples, go to bitaddress.org generate private keys and look at the compressed and uncompressed public key results.

Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!