Skip to content

Bitcoin ECIES encryption GoLang implementation, compatible with Electrum/Electron Cash/ElectrumSV

Notifications You must be signed in to change notification settings

gitzhou/bitcoin-ecies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

256022c · Jan 23, 2019

History

5 Commits
Dec 21, 2018
Jan 23, 2019
Dec 21, 2018
Dec 21, 2018
Dec 21, 2018
Dec 21, 2018

Repository files navigation

Bitcoin ECIES

Encrypt message with bitcoin public key, and decrypt with the corresponding private key

Electrum, Electron Cash and ElectrumSV have an implementation under Tools --> Encrypt/decrypt message

Imgur

This is a GoLang version of the feature, compatible with Electrum/Electron Cash/ElectrumSV

Node.js version please refer to monkeylord/electrum-ecies

Usage

$ go get github.com/gitzhou/bitcoin-ecies

Below is a demo, or check the unit test code for an example

package main

import (
	"encoding/hex"
	"fmt"
	"github.com/gitzhou/bitcoin-ecies"
)

func main() {
	// Public key, compressed and uncompressed are both supported
	publicKey, _ := hex.DecodeString("04866269bf6c2d71968ec46797b91b207affeea74dbba1f181ff354abbfbdfe9327c58d1c0681e328f555f5aa6ec2e7543baf2b3f89ce90720d617da710ce1ea93")
	// Private key Wallet Import Format(WIF): 5KdBypVKceVrUNbWmxDJALGJ9fo9rwNYTjppps8gQb9C8VHUXzr
	// Transfer to HEX with https://gobittest.appspot.com/PrivateKey
	privateKey, _ := hex.DecodeString("ee3231b5deea48b619814d72a6e1aa04a9f521df281afad5ada89f5393941b1c")

	message := "hello world"
	encrypted, err := bitcoin_ecies.EncryptMessage(message, publicKey)
	if err != nil {
		fmt.Println(err.Error())
	}
	fmt.Println(encrypted)
	plain, err := bitcoin_ecies.DecryptMessage(encrypted, privateKey)
	if err != nil {
		fmt.Println(err.Error())
	}
	if message != plain {
		fmt.Println("data mismatch after encrypt and decrypt")
	}
}

Reference

Donation

Appreciated and THANK YOU 😄

You can donate Bitcoin, Bitcoin Cash or Bitcoin SV to 13L81fdKqdif6AEFAfBymXdyB3hDvBvdp9 to buy me a cup of coffee ☕

Imgur

License

MIT

About

Bitcoin ECIES encryption GoLang implementation, compatible with Electrum/Electron Cash/ElectrumSV

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages