Merge pull request #140 from meshplus/refactor/update-crypto

refactor(*): update crypto
This commit is contained in:
jzhe 2020-08-24 12:28:48 +08:00 committed by GitHub
commit 3b6ec1eec7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
81 changed files with 636 additions and 523 deletions

View File

@ -16,6 +16,9 @@ import (
"strings"
"time"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub/internal/repo"
"github.com/meshplus/bitxhub/pkg/cert"
"github.com/urfave/cli"
)
@ -291,45 +294,49 @@ var parseCMD = cli.Command{
var privCMD = cli.Command{
Name: "priv",
Usage: "Generate private key",
Flags: []cli.Flag{
cli.StringFlag{
Name: "name",
Usage: "Specific private key name",
Required: true,
Usage: "Generate and show private key for certificate",
Subcommands: []cli.Command{
{
Name: "gen",
Usage: "Create new private key",
Flags: []cli.Flag{
cli.StringFlag{
Name: "name",
Usage: "Specific private key name",
Required: true,
},
cli.StringFlag{
Name: "target",
Usage: "Specific target directory",
},
},
Action: func(ctx *cli.Context) error {
return generatePrivKey(ctx, crypto.ECDSA_P256)
},
},
cli.StringFlag{
Name: "target",
Usage: "Specific target directory",
{
Name: "pid",
Usage: "Show pid from private key",
Flags: []cli.Flag{
cli.StringFlag{
Name: "path",
Usage: "Specific private key path",
Required: true,
},
},
Action: func(ctx *cli.Context) error {
privPath := ctx.String("path")
pid, err := repo.GetPidFromPrivFile(privPath)
if err != nil {
return err
}
fmt.Println(pid)
return nil
},
},
},
Action: func(ctx *cli.Context) error {
name := ctx.String("name")
target := ctx.String("target")
privKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
if err != nil {
return fmt.Errorf("generate key: %w", err)
}
priKeyEncode, err := x509.MarshalECPrivateKey(privKey)
if err != nil {
return fmt.Errorf("marshal key: %w", err)
}
path := filepath.Join(target, fmt.Sprintf("%s.priv", name))
f, err := os.Create(path)
if err != nil {
return fmt.Errorf("create file: %w", err)
}
err = pem.Encode(f, &pem.Block{Type: "EC PRIVATE KEY", Bytes: priKeyEncode})
if err != nil {
return fmt.Errorf("pem encode: %w", err)
}
return nil
},
}
var verifyCMD = cli.Command{
@ -385,3 +392,31 @@ func getFileName(path string) string {
return bs[0]
}
func generatePrivKey(ctx *cli.Context, opt crypto.KeyType) error {
name := ctx.String("name")
target := ctx.String("target")
privKey, err := asym.GenerateKeyPair(opt)
if err != nil {
return fmt.Errorf("generate key: %w", err)
}
priKeyEncode, err := privKey.Bytes()
if err != nil {
return fmt.Errorf("marshal key: %w", err)
}
path := filepath.Join(target, fmt.Sprintf("%s.priv", name))
f, err := os.Create(path)
if err != nil {
return fmt.Errorf("create file: %w", err)
}
err = pem.Encode(f, &pem.Block{Type: "EC PRIVATE KEY", Bytes: priKeyEncode})
if err != nil {
return fmt.Errorf("pem encode: %w", err)
}
return nil
}

View File

@ -3,11 +3,10 @@ package main
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
"github.com/meshplus/bitxhub-kit/key"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub/internal/repo"
"github.com/meshplus/bitxhub/pkg/cert"
"github.com/urfave/cli"
@ -20,7 +19,25 @@ func keyCMD() cli.Command {
Subcommands: []cli.Command{
{
Name: "gen",
Usage: "Create new key file from private key",
Usage: "Create new Secp256k1 private key",
Flags: []cli.Flag{
cli.StringFlag{
Name: "name",
Usage: "Specific private key name",
Required: true,
},
cli.StringFlag{
Name: "target",
Usage: "Specific target directory",
},
},
Action: func(ctx *cli.Context) error {
return generatePrivKey(ctx, crypto.Secp256k1)
},
},
{
Name: "convert",
Usage: "Convert new key file from private key",
Flags: []cli.Flag{
cli.BoolFlag{
Name: "save,s",
@ -32,7 +49,7 @@ func keyCMD() cli.Command {
Required: true,
},
},
Action: generateKey,
Action: convertKey,
},
{
Name: "show",
@ -45,21 +62,9 @@ func keyCMD() cli.Command {
},
},
},
{
Name: "pid",
Usage: "Show pid from private key",
Action: getPid,
Flags: []cli.Flag{
cli.StringFlag{
Name: "path",
Usage: "Private Key Path",
Required: true,
},
},
},
{
Name: "address",
Usage: "Show address from private",
Usage: "Show address from private key",
Action: getAddress,
Flags: []cli.Flag{
cli.StringFlag{
@ -73,26 +78,15 @@ func keyCMD() cli.Command {
}
}
func generateKey(ctx *cli.Context) error {
func convertKey(ctx *cli.Context) error {
privPath := ctx.String("priv")
data, err := ioutil.ReadFile(privPath)
if err != nil {
return fmt.Errorf("read private key: %w", err)
}
stdPriv, err := cert.ParsePrivateKey(data)
if err != nil {
return err
}
privKey := &ecdsa.PrivateKey{K: stdPriv}
act, err := key.NewWithPrivateKey(privKey, "bitxhub")
if err != nil {
return fmt.Errorf("create account error: %s", err)
}
out, err := act.Pretty()
privKey, err := cert.ParsePrivateKey(data, crypto.Secp256k1)
if err != nil {
return err
}
@ -104,12 +98,21 @@ func generateKey(ctx *cli.Context) error {
}
keyPath := filepath.Join(repoRoot, repo.KeyName)
err = ioutil.WriteFile(keyPath, []byte(out), os.ModePerm)
if err != nil {
return fmt.Errorf("write key file: %w", err)
if err := asym.StorePrivateKey(privKey, keyPath, "bitxhub"); err != nil {
return err
}
} else {
fmt.Println(out)
keyStore, err := asym.GenKeyStore(privKey, "bitxhub")
if err != nil {
return err
}
pretty, err := keyStore.Pretty()
if err != nil {
return err
}
fmt.Println(pretty)
}
return nil
@ -132,18 +135,6 @@ func showKey(ctx *cli.Context) error {
return nil
}
func getPid(ctx *cli.Context) error {
privPath := ctx.String("path")
pid, err := repo.GetPidFromPrivFile(privPath)
if err != nil {
return err
}
fmt.Println(pid)
return nil
}
func getAddress(ctx *cli.Context) error {
privPath := ctx.String("path")
@ -152,19 +143,17 @@ func getAddress(ctx *cli.Context) error {
return fmt.Errorf("read private key: %w", err)
}
stdPriv, err := cert.ParsePrivateKey(data)
privKey, err := cert.ParsePrivateKey(data, crypto.Secp256k1)
if err != nil {
return err
}
privKey := &ecdsa.PrivateKey{K: stdPriv}
act, err := key.NewWithPrivateKey(privKey, "bitxhub")
addr, err := privKey.PublicKey().Address()
if err != nil {
return fmt.Errorf("create account error: %s", err)
return err
}
fmt.Println(act.Address)
fmt.Println(addr.String())
return nil
}

View File

@ -1,8 +1,8 @@
{
"addresses": [
"0xe6f8c9cf6e38bd506fae93b73ee5e80cc8f73667",
"0x8374bb1e41d4a4bb4ac465e74caa37d242825efc",
"0x759801eab44c9a9bbc3e09cb7f1f85ac57298708",
"0xf2d66e2c27e93ff083ee3999acb678a36bb349bb"
"0xc7F999b83Af6DF9e67d0a37Ee7e900bF38b3D013",
"0x79a1215469FaB6f9c63c1816b45183AD3624bE34",
"0x97c8B516D19edBf575D72a172Af7F418BE498C37",
"0xc0Ff2e0b3189132D815b8eb325bE17285AC898f8"
]
}

View File

@ -1,6 +1,6 @@
addrs = [
["/ip4/127.0.0.1/tcp/4001/p2p/QmZZFk1Tj6p25ecz98SpyHxb6joDPxR3wVPptDwuc8fue1"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmNRgD6djYJERNpDpHqRn3mxjJ9SYiiGWzExNSy4sEmSNL"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmXmyw2usKApP6UyK3cHEJ1XvxxSa8kM2M3Q1T6fhdifs5"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmY21wH1M694j1JFEvwegyJz8h2VpaSeeqcwt2vUpxsFPt"]
["/ip4/127.0.0.1/tcp/4001/p2p/QmXi58fp9ZczF3Z5iz1yXAez3Hy5NYo1R8STHWKEM9XnTL"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmbmD1kzdsxRiawxu7bRrteDgW1ituXupR8GH6E2EUAHY4"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmQUcDYCtqbpn5Nhaw4FAGxQaSSNvdWfAFcpQT9SPiezbS"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmQW3bFn8XX1t4W14Pmn37bPJUpUVBrBjnPuBZwPog3Qdy"]
]

13
go.mod
View File

@ -1,14 +1,18 @@
module github.com/meshplus/bitxhub
require (
github.com/OneOfOne/xxhash v1.2.5 // indirect
github.com/PDXbaap/go-std-ext v0.0.0-20200717052600-5cf57717d1dc // indirect
github.com/Rican7/retry v0.1.0
github.com/aristanetworks/goarista v0.0.0-20200310212843-2da4c1f5881b // indirect
github.com/btcsuite/btcd v0.20.1-beta
github.com/cbergoon/merkletree v0.2.0
github.com/common-nighthawk/go-figure v0.0.0-20190529165535-67e0ed34491a
github.com/coreos/etcd v3.3.18+incompatible
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
github.com/ethereum/go-ethereum v1.9.13
github.com/elastic/gosigar v0.8.1-0.20180330100440-37f05ff46ffa // indirect
github.com/ethereum/go-ethereum v1.9.18
github.com/fatih/color v1.7.0 // indirect
github.com/gobuffalo/envy v1.9.0 // indirect
github.com/gobuffalo/packd v1.0.0
@ -19,10 +23,12 @@ require (
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
github.com/grpc-ecosystem/grpc-gateway v1.13.0
github.com/hokaccha/go-prettyjson v0.0.0-20190818114111-108c894c2c0e
github.com/lestrrat-go/strftime v1.0.3 // indirect
github.com/libp2p/go-libp2p-core v0.3.0
github.com/libp2p/go-openssl v0.0.4
github.com/magiconair/properties v1.8.1
github.com/meshplus/bitxhub-core v0.1.0-rc1.0.20200728032028-8dba332fa0ed
github.com/meshplus/bitxhub-kit v1.0.1-0.20200729105047-4407a5e4e168
github.com/meshplus/bitxhub-kit v1.0.1-0.20200813112754-a341f7bc198d
github.com/meshplus/bitxhub-model v1.0.0-rc4.0.20200731025300-2bb1717059e0
github.com/mitchellh/go-homedir v1.1.0
github.com/multiformats/go-multiaddr v0.2.0
@ -31,6 +37,7 @@ require (
github.com/rogpeppe/go-internal v1.5.2 // indirect
github.com/rs/cors v1.7.0
github.com/sirupsen/logrus v1.5.0
github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a
github.com/spf13/cast v1.3.0
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.6.1
@ -39,7 +46,7 @@ require (
github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d
github.com/tidwall/gjson v1.3.5
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
github.com/urfave/cli v1.22.1
github.com/urfave/cli v1.22.4
github.com/wasmerio/go-ext-wasm v0.3.1
github.com/willf/bitset v1.1.10 // indirect
github.com/willf/bloom v2.0.3+incompatible

60
go.sum
View File

@ -21,6 +21,8 @@ github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8L
github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
github.com/PDXbaap/go-std-ext v0.0.0-20200717052600-5cf57717d1dc h1:Tu0rnVyQL1b6ttsy41d6YT8P1kSxpFpjKWQlyrJgo8c=
github.com/PDXbaap/go-std-ext v0.0.0-20200717052600-5cf57717d1dc/go.mod h1:Z2osYn8BbcrFB4a6kfRZN0MhP8vOIeeS7T9Lt+80aK8=
github.com/Rican7/retry v0.1.0 h1:FqK94z34ly8Baa6K+G8Mmza9rYWTKOJk+yckIBB5qVk=
github.com/Rican7/retry v0.1.0/go.mod h1:FgOROf8P5bebcC1DS0PdOQiqGUridaZvikzUmkFW6gg=
github.com/Shopify/sarama v1.26.1 h1:3jnfWKD7gVwbB1KSy/lE0szA9duPuSFLViK0o/d3DgA=
@ -29,6 +31,8 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWso
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
github.com/VictoriaMetrics/fastcache v1.5.3/go.mod h1:+jv9Ckb+za/P1ZRg/sulP5Ni1v49daAVERr0H3CuscE=
github.com/VictoriaMetrics/fastcache v1.5.7/go.mod h1:ptDBkNMQI4RtmVo8VS/XwRY6RoTu1dAWCbrk+6WsEM8=
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@ -53,6 +57,7 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/btcsuite/btcd v0.0.0-20171128150713-2e60448ffcc6/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ=
github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0=
github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78=
github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8=
github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI=
@ -61,6 +66,7 @@ github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcug
github.com/btcsuite/btcd v0.20.1-beta h1:Ik4hyJqN8Jfyv3S4AGBOmyouMsYE3EdYODkMbQjwPGw=
github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
@ -131,16 +137,22 @@ github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elastic/gosigar v0.8.1-0.20180330100440-37f05ff46ffa/go.mod h1:cdorVVzy1fhmEqmtgqkoE3bYtCfSCkVyjTyCIo22xvs=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/etcd-io/bbolt v1.3.2/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw=
github.com/ethereum/go-ethereum v1.9.7/go.mod h1:PwpWDrCLZrV+tfrhqqF6kPknbISMHaJv9Ln3kPCZLwY=
github.com/ethereum/go-ethereum v1.9.13 h1:rOPqjSngvs1VSYH2H+PMPiWt4VEulvNRbFgqiGqJM3E=
github.com/ethereum/go-ethereum v1.9.13/go.mod h1:qwN9d1GLyDh0N7Ab8bMGd0H9knaji2jOBm2RrMGjXls=
github.com/ethereum/go-ethereum v1.9.18 h1:+vzvufVD7+OfQa07IJP20Z7AGZsJaw0M6JIA/WQcqy8=
github.com/ethereum/go-ethereum v1.9.18/go.mod h1:JSSTypSMTkGZtAdAChH2wP5dZEvPGh3nUTuDpH+hNrg=
github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 h1:Ghm4eQYC0nEPnSJdVkTrXpu9KtoVCSo1hg7mtI7G9KU=
github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239/go.mod h1:Gdwt2ce0yfBxPvZrHkprdPPTTS3N5rwmLE8T22KBXlw=
github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0=
github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
github.com/frankban/quicktest v1.7.2 h1:2QxQoC1TS09S7fhCPsrvqYdvP1H5M1P1ih5ABm3BTYk=
@ -153,6 +165,7 @@ github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI=
github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98=
github.com/go-kit/kit v0.6.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk=
@ -214,6 +227,8 @@ github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pO
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.2-0.20200707131729-196ae77b8a26 h1:lMm2hD9Fy0ynom5+85/pbdkiYcBqM1JWmhpAXLmy0fw=
github.com/golang/snappy v0.0.2-0.20200707131729-196ae77b8a26/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@ -230,6 +245,7 @@ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.1-0.20190629185528-ae1634f6a989/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
@ -256,10 +272,13 @@ github.com/hashicorp/golang-lru v0.0.0-20160813221303-0a025b7e63ad/go.mod h1:/m3
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hokaccha/go-prettyjson v0.0.0-20190818114111-108c894c2c0e h1:0aewS5NTyxftZHSnFaJmWE5oCCrj4DyEXkAiMa1iZJM=
github.com/hokaccha/go-prettyjson v0.0.0-20190818114111-108c894c2c0e/go.mod h1:pFlLw2CfqZiIBOx6BuCeRLCrfxBJipTY0nIOF/VbGcI=
github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw=
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huin/goupnp v0.0.0-20161224104101-679507af18f3/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag=
@ -272,6 +291,7 @@ github.com/hyperledger/fabric v2.0.1+incompatible/go.mod h1:tGFAOCT696D3rG0Vofd2
github.com/hyperledger/fabric v2.1.1+incompatible h1:cYYRv3vVg4kA6DmrixLxwn1nwBEUuYda8DsMwlaMKbY=
github.com/hyperledger/fabric-amcl v0.0.0-20200128223036-d1aa2665426a h1:HgdNn3UYz8PdcZrLEk0IsSU4LRHp7yY2rgjIKcSiJaA=
github.com/hyperledger/fabric-amcl v0.0.0-20200128223036-d1aa2665426a/go.mod h1:X+DIyUsaTmalOpmpQfIvFZjKHQedrURQ5t4YqquX7lE=
github.com/hyperledger/fabric-protos-go v0.0.0-20200124220212-e9cfc186ba7b/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0=
github.com/hyperledger/fabric-protos-go v0.0.0-20200330074707-cfe579e86986 h1:g9tgYXQPZcxRryp2/rutvfSCiiJzHNoyX7JaoXeGkZ8=
github.com/hyperledger/fabric-protos-go v0.0.0-20200330074707-cfe579e86986/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
@ -326,6 +346,7 @@ github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
@ -375,6 +396,8 @@ github.com/lestrrat-go/file-rotatelogs v2.2.0+incompatible h1:eXEwY0f2h6mcobdAxm
github.com/lestrrat-go/file-rotatelogs v2.2.0+incompatible/go.mod h1:ZQnN8lSECaebrkQytbHj4xNgtg8CR7RYXnPok8e0EHA=
github.com/lestrrat-go/strftime v1.0.0 h1:wZIfTHGdu7TeGu318uLJwuQvTMt9UpRyS+XV2Rc4wo4=
github.com/lestrrat-go/strftime v1.0.0/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR76fd03sz+Qz4g=
github.com/lestrrat-go/strftime v1.0.3 h1:qqOPU7y+TM8Y803I8fG9c/DyKG3xH/xkng6keC1015Q=
github.com/lestrrat-go/strftime v1.0.3/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR76fd03sz+Qz4g=
github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88=
github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ=
github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg=
@ -503,14 +526,24 @@ github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/meshplus/bitxhub v1.0.0-rc2/go.mod h1:ijWzPl7GExD3IKXJ0LhV4q680kDy1IFQKd2Kzyzmtl0=
github.com/meshplus/bitxhub-core v0.1.0-rc1/go.mod h1:ayq95vbGEh/G2nKyPeXPc62zanWhDuusVpIDAHm4Rk0=
github.com/meshplus/bitxhub-core v0.1.0-rc1.0.20200728032028-8dba332fa0ed h1:voqi98ljfQdHxEpoY1cPcxwC98YBRdxJ312pgdHzsCc=
github.com/meshplus/bitxhub-core v0.1.0-rc1.0.20200728032028-8dba332fa0ed/go.mod h1:khAHtVIXh/uzc3oZCyfe7l4X45CO88WsFvwiEE1pKS0=
github.com/meshplus/bitxhub-kit v1.0.0-rc1 h1:gNi8IFU5CMHT3KE2I4ACj5alMW9h/4cV8xOxn7wSmtA=
github.com/meshplus/bitxhub-kit v1.0.0-rc1/go.mod h1:ra/AhOkPvpElI+wXrB9G6DjdcrdxFU3vMwA5MYKr9D0=
github.com/meshplus/bitxhub-kit v1.0.0-rc2/go.mod h1:1XDQRhdVkFDwQH3SgKKyy+cpUyfozNmCqrudDXlh2Oo=
github.com/meshplus/bitxhub-kit v1.0.0 h1:+RHGTqW50CLZlEQAUm89fQHicYcjqkdYa+QMAktxGd4=
github.com/meshplus/bitxhub-kit v1.0.0/go.mod h1:7cWyhXWZfrQ3+EaxkRoXfuiG3Y5R9DXYJomeZKkETW8=
github.com/meshplus/bitxhub-kit v1.0.1-0.20200727075316-ea098a3c3411 h1:iA/VUBsZqsk2ZB9KrJRLl8X0tPUQqle2c7HRCHLFmDE=
github.com/meshplus/bitxhub-kit v1.0.1-0.20200727075316-ea098a3c3411/go.mod h1:8Pprmnq+2fFi5kJP0qcbwPl/fe22nro0OamjtwD0LJM=
github.com/meshplus/bitxhub-kit v1.0.1-0.20200729105047-4407a5e4e168 h1:OUZuHqVUNMPMkpSc9cxAkUlsRDTb25l8NtOsps3sF74=
github.com/meshplus/bitxhub-kit v1.0.1-0.20200729105047-4407a5e4e168/go.mod h1:8Pprmnq+2fFi5kJP0qcbwPl/fe22nro0OamjtwD0LJM=
github.com/meshplus/bitxhub-kit v1.0.1-0.20200813111602-84f007b5c4e2 h1:CS7XSkH5tBkDSigPv8uwgJ9IOYrLtb5qVfUH1Z7lUNQ=
github.com/meshplus/bitxhub-kit v1.0.1-0.20200813111602-84f007b5c4e2/go.mod h1:gvXVzIJaA0IhS0ItSEU5/+XyzVGObjrnt/aJFVS5jWg=
github.com/meshplus/bitxhub-kit v1.0.1-0.20200813112754-a341f7bc198d h1:Z79pPumfBWUX+hyJXYeq5TzTdfepTupkR9NeUafRXYM=
github.com/meshplus/bitxhub-kit v1.0.1-0.20200813112754-a341f7bc198d/go.mod h1:gvXVzIJaA0IhS0ItSEU5/+XyzVGObjrnt/aJFVS5jWg=
github.com/meshplus/bitxhub-model v1.0.0-rc3/go.mod h1:ZCctQIYTlE3vJ8Lhkrgs9bWwNA+Dw4JzojOSIzLVU6E=
github.com/meshplus/bitxhub-model v1.0.0-rc4.0.20200514093243-7e8ae60d1c19 h1:D0n0/NqaueI6r+/cJIjYzWwjZ9j/5l36r/c8MYqTdXg=
github.com/meshplus/bitxhub-model v1.0.0-rc4.0.20200514093243-7e8ae60d1c19/go.mod h1:QK8aACbxtZEA3Hk1BOCirW0uxMWLsMrLDpWz9FweIKM=
github.com/meshplus/bitxhub-model v1.0.0-rc4.0.20200724062514-baa44473e4d8 h1:FlD+ETNIVTJ3gyceEdqqo6wvBkrYiTfLB6XM0tGH1Yw=
@ -523,6 +556,7 @@ github.com/meshplus/bitxhub-model v1.0.0-rc4.0.20200730072219-49561408ef50 h1:VK
github.com/meshplus/bitxhub-model v1.0.0-rc4.0.20200730072219-49561408ef50/go.mod h1:QK8aACbxtZEA3Hk1BOCirW0uxMWLsMrLDpWz9FweIKM=
github.com/meshplus/bitxhub-model v1.0.0-rc4.0.20200731025300-2bb1717059e0 h1:HICOZKS7qw4++eT0EXioutryV0O+v6aPp1jdhjlfJyU=
github.com/meshplus/bitxhub-model v1.0.0-rc4.0.20200731025300-2bb1717059e0/go.mod h1:QK8aACbxtZEA3Hk1BOCirW0uxMWLsMrLDpWz9FweIKM=
github.com/meshplus/go-bitxhub-client v1.0.0-rc3/go.mod h1:FpiCyf6KhydcqthrHdvvPhbPIcD92b+Ju8T7WvQtSyM=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/pkcs11 v1.0.3 h1:iMwmD7I5225wv84WxIG/bmxz9AXjWvTWIbM/TYHvWtw=
@ -650,6 +684,7 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCb
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.0.0-20181020173914-7e9e6cabbd39/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.4.0 h1:7etb9YClo3a6HjLzfl6rIQaU+FDfi0VSX39io3aQ+DM=
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
@ -666,6 +701,9 @@ github.com/prometheus/procfs v0.0.10 h1:QJQN3jYQhkamO4mhfUWqdDH2asK7ONOI9MTWjyAx
github.com/prometheus/procfs v0.0.10/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ=
github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc=
github.com/rcrowley/go-metrics v0.0.0-20180503174638-e2704e165165/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 h1:dY6ETXrvDG7Sa4vE8ZQG4yqWg6UnOcbqTAahkV813vQ=
github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo=
@ -682,6 +720,7 @@ github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE
github.com/rogpeppe/go-internal v1.5.2 h1:qLvObTrvO/XRCqmkKxUlOBc48bI3efyDuAZe25QiF0w=
github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rs/cors v0.0.0-20160617231935-a62a804a8a00/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubrpZHtQLnOf6EwhN2hEMusxZOhcW9H3UQ=
@ -690,6 +729,7 @@ github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/shirou/gopsutil v2.20.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
@ -704,6 +744,7 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9
github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY=
github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a h1:/eS3yfGjQKG+9kayBkj0ip1BGhq6zJ3eaVksphxAaek=
github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0=
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU=
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc=
@ -715,6 +756,7 @@ github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cobra v0.0.1/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s=
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk=
@ -723,6 +765,7 @@ github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.0.0/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM=
github.com/spf13/viper v1.3.2 h1:VUFqw5KcqRf7i70GOzW7N+Q7+gxVBkSSqiXB12+JQ4M=
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk=
@ -748,12 +791,16 @@ github.com/sykesm/zap-logfmt v0.0.3 h1:3Wrhf7+I9JEUD8B6KPtDAr9j2jrS0/EPLy7GCE1t/
github.com/sykesm/zap-logfmt v0.0.3/go.mod h1:AuBd9xQjAe3URrWT1BBDk2v2onAZHkZkWRMiYZXiZWA=
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA=
github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d h1:gZZadD8H+fF+n9CmNhYL1Y0dJB+kLOmKd7FbPJLeGHs=
github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA=
github.com/tebeka/strftime v0.1.3 h1:5HQXOqWKYRFfNyBMNVc9z5+QzuBtIXy03psIhtdJYto=
github.com/tebeka/strftime v0.1.3/go.mod h1:7wJm3dZlpr4l/oVK0t1HYIc4rMzQ2XJlOMIUJUJH6XQ=
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU=
github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4=
github.com/tendermint/go-amino v0.14.1/go.mod h1:i/UKE5Uocn+argJJBb12qTZsCDBcAYMbR92AaJVmKso=
github.com/tendermint/iavl v0.12.4/go.mod h1:8LHakzt8/0G3/I8FUU0ReNx98S/EP6eyPJkAUvEXT/o=
github.com/tendermint/tendermint v0.32.1/go.mod h1:jmPDAKuNkev9793/ivn/fTBnfpA9mGBww8MPRNPNxnU=
github.com/tidwall/gjson v1.3.5 h1:2oW9FBNu8qt9jy5URgrzsVx/T/KSn3qn/smJQ0crlDQ=
github.com/tidwall/gjson v1.3.5/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls=
github.com/tidwall/match v1.0.1 h1:PnKP62LPNxHKTwvHHZZzdOAOCtsJTjo6dZLCwpKm5xc=
@ -770,6 +817,8 @@ github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8 h1:3SVOIvH7Ae1KRYy
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/urfave/cli v1.22.4 h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA=
github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
github.com/wasmerio/go-ext-wasm v0.3.1 h1:G95XP3fE2FszQSwIU+fHPBYzD0Csmd2ef33snQXNA5Q=
github.com/wasmerio/go-ext-wasm v0.3.1/go.mod h1:VGyarTzasuS7k5KhSIGpM3tciSZlkP31Mp9VJTHMMeI=
@ -787,6 +836,7 @@ github.com/willf/bitset v1.1.10 h1:NotGKqX0KwQ72NUzqrjZq5ipPNDQex9lo3WpaS8L2sc=
github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
github.com/willf/bloom v2.0.3+incompatible h1:QDacWdqcAUI1MPOwIQZRy9kOR7yxfyEmxX8Wdm2/JPA=
github.com/willf/bloom v2.0.3+incompatible/go.mod h1:MmAltL9pDMNTrvUkxdg0k0q5I0suxmuwp3KbyrZLOZ8=
github.com/wonderivan/logger v1.0.0/go.mod h1:NObMfQ3WOLKfYEZuGeZQfuQfSPE5+QNgRddVMzsAT/k=
github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees=
github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
@ -843,6 +893,10 @@ golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d h1:1ZiEyfaQIg3Qh0EoqpwAak
golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4 h1:QmwruyY+bKbDDL0BaglrbZABEali68eoMFhTZpCjYVA=
golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 h1:DZhuSZLsGlFL4CmhA8BcRA0mnthyA/nZ00AqCUo7vHg=
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@ -877,6 +931,8 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0 h1:MsuvTghUPjX762sGLnGsxC3HM
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4=
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -912,6 +968,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200219091948-cb0a6d8edb6c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -961,6 +1019,7 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij
google.golang.org/grpc v1.23.0 h1:AzbTB6ux+okLTzP8Ru1Xs41C303zdcfEht7MQnYJt5A=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
google.golang.org/grpc v1.25.0/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
@ -995,6 +1054,7 @@ gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU=
gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c=
gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200316214253-d7b0ff38cac9/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns=
gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns=
gopkg.in/redis.v4 v4.2.4/go.mod h1:8KREHdypkCEojGKQcjMqAODMICIVwZAONWq8RowTITA=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d/go.mod h1:z+K8VcOYVYcSwSjGebuDL6176A1XskgbtNl64NSg+n8=

View File

@ -170,43 +170,43 @@ func registerBoltContracts() map[string]boltvm.Contract {
{
Enabled: true,
Name: "interchain manager contract",
Address: constant.InterchainContractAddr.String(),
Address: constant.InterchainContractAddr.Address().String(),
Contract: &contracts.InterchainManager{},
},
{
Enabled: true,
Name: "store service",
Address: constant.StoreContractAddr.String(),
Address: constant.StoreContractAddr.Address().String(),
Contract: &contracts.Store{},
},
{
Enabled: true,
Name: "rule manager service",
Address: constant.RuleManagerContractAddr.String(),
Address: constant.RuleManagerContractAddr.Address().String(),
Contract: &contracts.RuleManager{},
},
{
Enabled: true,
Name: "role manager service",
Address: constant.RoleContractAddr.String(),
Address: constant.RoleContractAddr.Address().String(),
Contract: &contracts.Role{},
},
{
Enabled: true,
Name: "appchain manager service",
Address: constant.AppchainMgrContractAddr.String(),
Address: constant.AppchainMgrContractAddr.Address().String(),
Contract: &contracts.AppchainManager{},
},
{
Enabled: true,
Name: "transaction manager service",
Address: constant.TransactionMgrContractAddr.String(),
Address: constant.TransactionMgrContractAddr.Address().String(),
Contract: &contracts.TransactionManager{},
},
{
Enabled: true,
Name: "asset exchange service",
Address: constant.AssetExchangeContractAddr.String(),
Address: constant.AssetExchangeContractAddr.Address().String(),
Contract: &contracts.AssetExchange{},
},
}

View File

@ -12,8 +12,7 @@ import (
"github.com/gogo/protobuf/proto"
"github.com/golang/mock/gomock"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
"github.com/meshplus/bitxhub-kit/key"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-kit/log"
"github.com/meshplus/bitxhub-kit/types"
"github.com/meshplus/bitxhub-model/pb"
@ -73,7 +72,7 @@ func TestBlockExecutor_ExecuteBlock(t *testing.T) {
// mock data for block
var txs []*pb.Transaction
privKey, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
privKey, err := asym.GenerateKeyPair(crypto.Secp256k1)
assert.Nil(t, err)
pubKey := privKey.PublicKey()
@ -205,7 +204,7 @@ func TestBlockExecutor_ExecuteBlock_Transfer(t *testing.T) {
block := <-ch
require.EqualValues(t, 2, block.Block.Height())
require.EqualValues(t, 99999997, ldg.GetBalance(from))
require.EqualValues(t, uint64(99999997), ldg.GetBalance(from))
// test executor with readonly ledger
viewLedger, err := ledger.New(blockchainStorage, ldb, accountCache, log.NewWithModule("ledger"))
@ -244,10 +243,7 @@ func mockTransferTx(t *testing.T) *pb.Transaction {
}
func loadAdminKey(t *testing.T) (crypto.PrivateKey, types.Address) {
k, err := key.LoadKey(filepath.Join("testdata", "key.json"))
require.Nil(t, err)
privKey, err := k.GetPrivateKey(keyPassword)
privKey, err := asym.RestorePrivateKey(filepath.Join("testdata", "key.json"), keyPassword)
require.Nil(t, err)
from, err := privKey.PublicKey().Address()
@ -257,7 +253,7 @@ func loadAdminKey(t *testing.T) (crypto.PrivateKey, types.Address) {
}
func randAddress(t *testing.T) types.Address {
privKey, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
privKey, err := asym.GenerateKeyPair(crypto.Secp256k1)
require.Nil(t, err)
address, err := privKey.PublicKey().Address()
require.Nil(t, err)

View File

@ -10,6 +10,7 @@ import (
"time"
"github.com/cbergoon/merkletree"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-kit/types"
"github.com/meshplus/bitxhub-model/pb"
@ -199,7 +200,7 @@ func (exec *BlockExecutor) verifySign(block *pb.Block) ([]*pb.Transaction, []*pb
for i, tx := range txs {
go func(i int, tx *pb.Transaction) {
defer wg.Done()
ok, _ := asym.Verify(asym.ECDSASecp256r1, tx.Signature, tx.SignHash().Bytes(), tx.From)
ok, _ := asym.Verify(crypto.Secp256k1, tx.Signature, tx.SignHash().Bytes(), tx.From)
mutex.Lock()
defer mutex.Unlock()
if !ok {

8
internal/executor/testdata/key.json vendored Executable file → Normal file
View File

@ -1,5 +1,7 @@
{
"address": "0xba30d0dd7876318da4515826a1f8bee8cefc9061",
"private_key": "3592c476850c4007385fe4084039d29bcc160652f5a41e83bb89ebdd1432ece4746545ffbdb7269a9df8aad2a6e33f97",
"encrypted": true
"type": 3,
"cipher": {
"data": "6cd8c4ab2f6e62fd91ab8b5e69df29c36a7760d8409fae1edefce11cdeef71a034d8720c291e5f457745f60c1b6d2e78d5edc6d5ca0beb5b2047cb54e3fe0995",
"cipher": "AES-256"
}
}

View File

@ -6,7 +6,6 @@ import (
"testing"
"github.com/meshplus/bitxhub-kit/bytesutil"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-kit/hexutil"
"github.com/meshplus/bitxhub-kit/log"
"github.com/meshplus/bitxhub-kit/types"
@ -15,8 +14,6 @@ import (
)
func TestAccount_GetState(t *testing.T) {
_, err := asym.GenerateKey(asym.ECDSASecp256r1)
assert.Nil(t, err)
repoRoot, err := ioutil.TempDir("", "ledger_commit")
assert.Nil(t, err)
blockStorage, err := leveldb.New(filepath.Join(repoRoot, "storage"))

View File

@ -36,26 +36,26 @@ func TestLedger_Commit(t *testing.T) {
accounts, journal := ledger.FlushDirtyDataAndComputeJournal()
ledger.PersistBlockData(genBlockData(1, accounts, journal))
assert.Equal(t, uint64(1), ledger.Version())
assert.Equal(t, "0xa1a6d35708fa6cf804b6cf9479f3a55d9a87fbfb83c55a64685aeabdba6116b1", journal.ChangedHash.Hex())
assert.Equal(t, "0xA1a6d35708Fa6Cf804B6cF9479F3a55d9A87FbFB83c55a64685AeaBdBa6116B1", journal.ChangedHash.Hex())
accounts, journal = ledger.FlushDirtyDataAndComputeJournal()
ledger.PersistBlockData(genBlockData(2, accounts, journal))
assert.Equal(t, uint64(2), ledger.Version())
assert.Equal(t, "0xf09f0198c06d549316d4ee7c497c9eaef9d24f5b1075e7bcef3d0a82dfa742cf", journal.ChangedHash.Hex())
assert.Equal(t, "0xF09F0198C06D549316D4ee7C497C9eaeF9D24f5b1075e7bCEF3D0a82DfA742cF", journal.ChangedHash.Hex())
ledger.SetState(account, []byte("a"), []byte("3"))
ledger.SetState(account, []byte("a"), []byte("2"))
accounts, journal = ledger.FlushDirtyDataAndComputeJournal()
ledger.PersistBlockData(genBlockData(3, accounts, journal))
assert.Equal(t, uint64(3), ledger.Version())
assert.Equal(t, "0xe9fc370dd36c9bd5f67ccfbc031c909f53a3d8bc7084c01362c55f2d42ba841c", journal.ChangedHash.Hex())
assert.Equal(t, "0xe9FC370DD36C9BD5f67cCfbc031C909F53A3d8bC7084C01362c55f2D42bA841c", journal.ChangedHash.Hex())
ledger.SetBalance(account, 100)
accounts, journal = ledger.FlushDirtyDataAndComputeJournal()
ledger.PersistBlockData(genBlockData(4, accounts, journal))
assert.Nil(t, err)
assert.Equal(t, uint64(4), ledger.Version())
assert.Equal(t, "0xc179056204ba33ed6cfc0bfe94ca03319beb522fd7b0773a589899817b49ec08", journal.ChangedHash.Hex())
assert.Equal(t, "0xC179056204BA33eD6CFC0bfE94ca03319BEb522fd7B0773A589899817B49ec08", journal.ChangedHash.Hex())
code := bytesutil.RightPadBytes([]byte{100}, 100)
ledger.SetCode(account, code)

View File

@ -1,114 +1,84 @@
package repo
import (
"crypto/x509"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"github.com/libp2p/go-libp2p-core/crypto"
crypto2 "github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-kit/fileutil"
"github.com/meshplus/bitxhub-kit/key"
"github.com/meshplus/bitxhub/pkg/cert"
"github.com/tidwall/gjson"
)
type Key struct {
PID string `json:"pid"`
Address string `json:"address"`
PrivKey crypto2.PrivateKey `json:"priv_key"`
Libp2pPrivKey crypto.PrivKey
}
func LoadKey(path string) (*Key, error) {
keyPath := filepath.Join(path)
data, err := ioutil.ReadFile(keyPath)
privKey, err := asym.RestorePrivateKey(path, "bitxhub")
if err != nil {
return nil, err
}
pid := gjson.GetBytes(data, "pid")
address := gjson.GetBytes(data, "address")
privKeyString := gjson.GetBytes(data, "priv_key")
fmt.Println(string(data))
fmt.Println(address)
libp2pPrivKeyData, err := crypto.ConfigDecodeKey(privKeyString.String())
if err != nil {
return nil, err
}
libp2pPrivKey, err := crypto.UnmarshalPrivateKey(libp2pPrivKeyData)
if err != nil {
return nil, err
}
raw, err := libp2pPrivKey.Raw()
if err != nil {
return nil, err
}
privKey, err := x509.ParseECPrivateKey(raw)
if err != nil {
return nil, err
}
return &Key{
PID: pid.String(),
Address: address.String(),
PrivKey: &ecdsa.PrivateKey{K: privKey},
Libp2pPrivKey: libp2pPrivKey,
}, nil
}
func loadPrivKey(repoRoot string) (*Key, error) {
data, err := ioutil.ReadFile(filepath.Join(repoRoot, "certs/node.priv"))
if err != nil {
return nil, err
}
stdPriv, err := cert.ParsePrivateKey(data)
if err != nil {
return nil, err
}
privKey := &ecdsa.PrivateKey{K: stdPriv}
address, err := privKey.PublicKey().Address()
if err != nil {
return nil, err
}
libp2pPrivKey, _, err := crypto.ECDSAKeyPairFromKey(stdPriv)
return &Key{
Address: address.String(),
PrivKey: privKey,
}, nil
}
func loadPrivKey(repoRoot string) (*Key, error) {
keyData, err := ioutil.ReadFile(filepath.Join(repoRoot, "certs/key.priv"))
if err != nil {
return nil, err
}
pid := gjson.Get(string(data), "pid").String()
privKey, err := cert.ParsePrivateKey(keyData, crypto2.Secp256k1)
if err != nil {
return nil, err
}
address, err := privKey.PublicKey().Address()
if err != nil {
return nil, err
}
nodeKeyData, err := ioutil.ReadFile(filepath.Join(repoRoot, "certs/node.priv"))
if err != nil {
return nil, err
}
nodePrivKey, err := cert.ParsePrivateKey(nodeKeyData, crypto2.ECDSA_P256)
if err != nil {
return nil, err
}
libp2pPrivKey, _, err := crypto.ECDSAKeyPairFromKey(nodePrivKey.K)
if err != nil {
return nil, err
}
keyPath := filepath.Join(repoRoot, KeyName)
if !fileutil.Exist(keyPath) {
k, err := key.NewWithPrivateKey(privKey, "bitxhub")
privKey, err := asym.PrivateKeyFromStdKey(privKey.K)
if err != nil {
return nil, err
}
data, err := k.Pretty()
if err != nil {
return nil, err
}
if err := ioutil.WriteFile(keyPath, []byte(data), os.ModePerm); err != nil {
if err := asym.StorePrivateKey(privKey, keyPath, "bitxhub"); err != nil {
return nil, err
}
}
return &Key{
PID: pid,
Address: address.Hex(),
PrivKey: privKey,
Libp2pPrivKey: libp2pPrivKey,

View File

@ -9,6 +9,7 @@ import (
"github.com/libp2p/go-libp2p-core/crypto"
"github.com/libp2p/go-libp2p-core/peer"
crypto2 "github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub/pkg/cert"
ma "github.com/multiformats/go-multiaddr"
)
@ -196,17 +197,16 @@ func (p NetworkConfig) Swap(i, j int) { p.Nodes[i], p.Nodes[j] = p.Nodes[j], p.N
// GetPidFromPrivFile gets pid from libp2p node priv file
func GetPidFromPrivFile(privPath string) (string, error) {
data, err := ioutil.ReadFile(privPath)
if err != nil {
return "", fmt.Errorf("read private key: %w", err)
}
stdPriv, err := cert.ParsePrivateKey(data)
privKey, err := cert.ParsePrivateKey(data, crypto2.ECDSA_P256)
if err != nil {
return "", err
}
_, pk, err := crypto.KeyPairFromStdKey(stdPriv)
_, pk, err := crypto.KeyPairFromStdKey(privKey.K)
if err != nil {
return "", err
}

View File

@ -11,6 +11,9 @@ import (
"fmt"
"math/big"
"time"
"github.com/meshplus/bitxhub-kit/crypto"
ecdsa2 "github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
)
func VerifySign(subCert *x509.Certificate, caCert *x509.Certificate) error {
@ -25,7 +28,7 @@ func VerifySign(subCert *x509.Certificate, caCert *x509.Certificate) error {
return nil
}
func ParsePrivateKey(data []byte) (*ecdsa.PrivateKey, error) {
func ParsePrivateKey(data []byte, opt crypto.KeyType) (*ecdsa2.PrivateKey, error) {
if data == nil {
return nil, fmt.Errorf("empty data")
}
@ -35,7 +38,7 @@ func ParsePrivateKey(data []byte) (*ecdsa.PrivateKey, error) {
return nil, fmt.Errorf("empty block")
}
return x509.ParseECPrivateKey(block.Bytes)
return ecdsa2.UnmarshalPrivateKey(block.Bytes, opt)
}
func ParseCert(data []byte) (*x509.Certificate, error) {

View File

@ -1,19 +1,25 @@
package cert
import (
"encoding/pem"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/require"
"github.com/libp2p/go-libp2p-core/crypto"
peer2 "github.com/libp2p/go-libp2p-core/peer"
crypto2 "github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestParsePrivateKey(t *testing.T) {
data, err := ioutil.ReadFile(filepath.Join("testdata", "ca.priv"))
assert.Nil(t, err)
privKey, err := ParsePrivateKey(data)
privKey, err := ParsePrivateKey(data, crypto2.ECDSA_P256)
assert.Nil(t, err)
assert.NotNil(t, privKey)
}
@ -38,3 +44,31 @@ func TestVerifySign(t *testing.T) {
err = VerifySign(nodeCert, subCert)
require.Nil(t, err)
}
func TestParsePrivateKey2(t *testing.T) {
privKey, err := asym.GenerateKeyPair(crypto2.ECDSA_P256)
require.Nil(t, err)
priKeyEncode, err := privKey.Bytes()
require.Nil(t, err)
f, err := os.Create("./key.priv")
require.Nil(t, err)
err = pem.Encode(f, &pem.Block{Type: "EC PRIVATE KEY", Bytes: priKeyEncode})
require.Nil(t, err)
data, err := ioutil.ReadFile("./key.priv")
assert.Nil(t, err)
privKey1, err := ParsePrivateKey(data, crypto2.ECDSA_P256)
assert.Nil(t, err)
_, pk, err := crypto.KeyPairFromStdKey(privKey1.K)
assert.Nil(t, err)
pid, err := peer2.IDFromPublicKey(pk)
assert.Nil(t, err)
fmt.Println(pid.String())
}

View File

@ -10,6 +10,7 @@ import (
"github.com/golang/mock/gomock"
"github.com/libp2p/go-libp2p-core/peer"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-kit/log"
"github.com/meshplus/bitxhub-kit/types"
@ -74,7 +75,7 @@ func TestNode_Start(t *testing.T) {
}
func generateTx() *pb.Transaction {
privKey, _ := asym.GenerateKey(asym.ECDSASecp256r1)
privKey, _ := asym.GenerateKeyPair(crypto.Secp256k1)
from, _ := privKey.PublicKey().Address()

View File

@ -7,14 +7,14 @@ import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-kit/log"
"github.com/meshplus/bitxhub-kit/types"
"github.com/meshplus/bitxhub-model/pb"
"github.com/meshplus/bitxhub/internal/repo"
"github.com/meshplus/bitxhub/pkg/order"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -35,7 +35,7 @@ func TestNode_Start(t *testing.T) {
err = order.Start()
require.Nil(t, err)
privKey, err := asym.GenerateKey(asym.ECDSASecp256r1)
privKey, err := asym.GenerateKeyPair(crypto.Secp256k1)
require.Nil(t, err)
from, err := privKey.PublicKey().Address()

View File

@ -9,8 +9,8 @@ import (
"github.com/gogo/protobuf/proto"
"github.com/meshplus/bitxhub-core/validator/validatorlib"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
"github.com/meshplus/bitxhub-kit/log"
"github.com/meshplus/bitxhub-kit/types"
"github.com/meshplus/bitxhub-model/pb"
@ -38,7 +38,7 @@ L6FMy96mi64g37R0i/I+T4MC5p2mzZIHvRJ8Rg==
-----END CERTIFICATE-----`
func initCreateContext(t *testing.T, name string) *vm.Context {
privKey, err := asym.GenerateKey(asym.ECDSASecp256r1)
privKey, err := asym.GenerateKeyPair(crypto.Secp256k1)
assert.Nil(t, err)
dir := filepath.Join(os.TempDir(), "wasm", name)
@ -73,7 +73,7 @@ func initValidationContext(t *testing.T, name string) *vm.Context {
bytes, err := ioutil.ReadFile("./testdata/validation_test.wasm")
require.Nil(t, err)
privKey, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
privKey, err := asym.GenerateKeyPair(crypto.Secp256k1)
require.Nil(t, err)
data := &pb.TransactionData{
@ -103,7 +103,7 @@ func initFabricContext(t *testing.T, name string) *vm.Context {
bytes, err := ioutil.ReadFile("./testdata/fabric_policy.wasm")
require.Nil(t, err)
privKey, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
privKey, err := asym.GenerateKeyPair(crypto.Secp256k1)
require.Nil(t, err)
data := &pb.TransactionData{
@ -232,7 +232,7 @@ func BenchmarkRunFabValidation(b *testing.B) {
bytes, err := ioutil.ReadFile("./testdata/fabric_policy.wasm")
require.Nil(b, err)
privKey, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
privKey, err := asym.GenerateKeyPair(crypto.Secp256k1)
require.Nil(b, err)
data := &pb.TransactionData{

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDNMmrlEZb7f34zCNZ1lXeDWtDQfJGGaQCdEpQja785CoAoGCCqGSM49
AwEHoUQDQgAEO0w+veZdTqSoWUAL1AMP4ih8klamGEGI1WqAqNXC4Cdh2E40+3Ec
orrBYFXmnBPasspBQ5mN0hQs137KNMZXLg==
MHcCAQEEIJyWd2na34+SrHyG0FPSzDFY0Ui6xFN75y4swFIdnrnNoAoGCCqGSM49
AwEHoUQDQgAERMKP4wCi95KyNIsavfLwXkgRxwsB+fx32ubDc43bhjo3OipXvZP6
S9c/uUmWP7tuFglG1c7cWI8MGnV8VBvW3A==
-----END EC PRIVATE KEY-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIN/zAUW7izN9tvYYYHL/NLPwYvACXE9Lz5YLSgASBMLtoAoGCCqGSM49
AwEHoUQDQgAEUpPbG1N5z8KxQaJEAh58Oin1+EyZXmC8UwoEPiTaa814ErqkTWXL
kQFFvWY17lfFBXRL5PkfXcIggiCba8EEQQ==
MHcCAQEEIJIqu6H+EW5oZFqFLzwG2Om62xG68K/Q4cQ8pxclYPvYoAoGCCqGSM49
AwEHoUQDQgAEs52Lge/HzDaoKKAJ6WD1H1qEAgwDNJ1eWMEo9Uc+kXFirkQD0KKD
xW/CtljuoX0VBrQm2vpePBQ9+Ef0T2mo6g==
-----END EC PRIVATE KEY-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -0,0 +1,3 @@
-----BEGIN EC PRIVATE KEY-----
tkdxQ+F/iJJjBE9s9GPcNxd6xFJsTDmno0QZhFcCSi8=
-----END EC PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWjCCAf+gAwIBAgIDC4rPMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MIICWjCCAf+gAwIBAgIDDhFLMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzANBgNVBAoT
BkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1YjAgFw0y
MDAzMDQwODQ0MjRaGA8yMDcwMDIyMDA4NDQyNFowgZkxCzAJBgNVBAYTAkNOMREw
MDA4MTEwNTA3MTNaGA8yMDcwMDczMDA1MDcxM1owgZkxCzAJBgNVBAYTAkNOMREw
DwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ1pob3UxHzANBgNVBAkTBnN0
cmVldDAOBgNVBAkTB2FkZHJlc3MxDzANBgNVBBETBjMyNDAwMDEOMAwGA1UEChMF
Tm9kZTExEDAOBgNVBAsTB0JpdFhIdWIxEDAOBgNVBAMTB0JpdFhIdWIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAAQi8bygCNVfLigWljvEOCr8gRlpTpfIEGoP+HL8
4BwKcSX1n0hZC3oTfv7fMMGxE7lVjZ26C5q54vJAliceljbPozEwLzAOBgNVHQ8B
hkjOPQIBBggqhkjOPQMBBwNCAATgjTYEnavxerFuEKJ8C39QUY12xh/TC2E5V7ni
nmQcOgDDRv5HW4sskTSm/WX2D0BMzwb7XE5ATyoDeM9qcurDozEwLzAOBgNVHQ8B
Af8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMAoGCCqGSM49
BAMCA0kAMEYCIQDrq69L8mxZReND60P6tXDW5AnR4sSS/yPTsmh31D6+EgIhAKh/
WpVWOgI8b/ltCWpufb3TUM3lEQrsXP4W28Uk7q1j
BAMCA0kAMEYCIQD5Oz1xJvFgzYm/lTzoaO/i0ayPVRgSdBwvK6hEICo5lAIhAMtG
aswjd2wVA4zB5GPEmJ/tvPUnxrlOAU67AQMYR4zf
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIFYN9+xvnRzlNX6Cob3trD3HlcvuYZUYRPrhYU+Yh2ADoAoGCCqGSM49
AwEHoUQDQgAEIvG8oAjVXy4oFpY7xDgq/IEZaU6XyBBqD/hy/OAcCnEl9Z9IWQt6
E37+3zDBsRO5VY2duguaueLyQJYnHpY2zw==
MHcCAQEEIJjph6szT64kRmvzyZYWYaonaFVsvTZwRLqeV20wo2D3oAoGCCqGSM49
AwEHoUQDQgAE4I02BJ2r8XqxbhCifAt/UFGNdsYf0wthOVe54p5kHDoAw0b+R1uL
LJE0pv1l9g9ATM8G+1xOQE8qA3jPanLqww==
-----END EC PRIVATE KEY-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -0,0 +1,3 @@
-----BEGIN EC PRIVATE KEY-----
BcNwjTDCxyxLNjFKQfMAc6sY6iJs+Ma59WZyC/4uhjE=
-----END EC PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWTCCAf+gAwIBAgIDB5GsMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MIICWjCCAf+gAwIBAgIDC8pcMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzANBgNVBAoT
BkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1YjAgFw0y
MDAzMDQwODQ0MjRaGA8yMDcwMDIyMDA4NDQyNFowgZkxCzAJBgNVBAYTAkNOMREw
MDA4MTEwNTA3MTNaGA8yMDcwMDczMDA1MDcxM1owgZkxCzAJBgNVBAYTAkNOMREw
DwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ1pob3UxHzANBgNVBAkTBnN0
cmVldDAOBgNVBAkTB2FkZHJlc3MxDzANBgNVBBETBjMyNDAwMDEOMAwGA1UEChMF
Tm9kZTIxEDAOBgNVBAsTB0JpdFhIdWIxEDAOBgNVBAMTB0JpdFhIdWIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAARNhmawbnCyMOZmKAsFOPIOGSJo0/l9RGCFUU+a
Cd6/apiwrwWD4RGKWGHwjFAXSRHpYUzuwXwyQrB4FtJZ/1xoozEwLzAOBgNVHQ8B
hkjOPQIBBggqhkjOPQMBBwNCAARhGDBod719hBcz/lpLtEh8GsqzDhm1ZbjdaTsM
GivsjOHRk9iEkwDtXmsMvYn3yOIq2RR60T7/G2swBzuZiZWxozEwLzAOBgNVHQ8B
Af8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMAoGCCqGSM49
BAMCA0gAMEUCIQDSF6I7+I23UmoNxERZ7PHvW4dsIFTHaCLUNl2pG9uiHAIgB898
yCHKASfneRgUxz5KZ1kvtcrnqC73muAxWz0TMEE=
BAMCA0kAMEYCIQDrX3znEJ6zkhUhPN37LY5eurrCs7Brp/TQ/2geHdZLQAIhALxb
Gk39mUrJ/4z/dVGwFYccWZB8UOV1M4iuN6ypF+Sc
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEP1ckhwUxWqpJqnKitIC/u8eWAsR/4I+aLJDesKB9XOoAoGCCqGSM49
AwEHoUQDQgAETYZmsG5wsjDmZigLBTjyDhkiaNP5fURghVFPmgnev2qYsK8Fg+ER
ilhh8IxQF0kR6WFM7sF8MkKweBbSWf9caA==
MHcCAQEEICI2QiahAMKtO9tD9VnxZ2J3jvFt+/vTAtcAQzUcIPoXoAoGCCqGSM49
AwEHoUQDQgAEYRgwaHe9fYQXM/5aS7RIfBrKsw4ZtWW43Wk7DBor7Izh0ZPYhJMA
7V5rDL2J98jiKtkUetE+/xtrMAc7mYmVsQ==
-----END EC PRIVATE KEY-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -0,0 +1,3 @@
-----BEGIN EC PRIVATE KEY-----
halN1RQDWQ1PFJ+SMLb13joI5YiZ3K8Pd3aO+xgl6FQ=
-----END EC PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWDCCAf+gAwIBAgIDAv8gMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MIICWTCCAf+gAwIBAgIDCUHDMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzANBgNVBAoT
BkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1YjAgFw0y
MDAzMDQwODQ0MjRaGA8yMDcwMDIyMDA4NDQyNFowgZkxCzAJBgNVBAYTAkNOMREw
MDA4MTEwNTA3MTRaGA8yMDcwMDczMDA1MDcxNFowgZkxCzAJBgNVBAYTAkNOMREw
DwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ1pob3UxHzANBgNVBAkTBnN0
cmVldDAOBgNVBAkTB2FkZHJlc3MxDzANBgNVBBETBjMyNDAwMDEOMAwGA1UEChMF
Tm9kZTMxEDAOBgNVBAsTB0JpdFhIdWIxEDAOBgNVBAMTB0JpdFhIdWIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAARuVl3rBHNHE6214smPAzYe3zVwzM6FDuIwNePf
5n+hcafOvy1VtaaWaQzYFgYqHN3+aGSG/LeYdF0omY7NxOu3ozEwLzAOBgNVHQ8B
hkjOPQIBBggqhkjOPQMBBwNCAAQ9IPBBKkqSwWkwDdK+ARw2qlBmBD9bF8HJ0z3P
XeKaTmnnEBJu1e0vjHl+uQGBz5x1ulBRVeq4xhmkZtPZByO+ozEwLzAOBgNVHQ8B
Af8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMAoGCCqGSM49
BAMCA0cAMEQCIDLIYh5ivZaag+wpW+dIuH0fn/qbF6LOzWqAMVp3w5iyAiA7goaw
Kzc9FkMNtBbWATkEHrTK83MgW4gj0K0OFmtM2w==
BAMCA0gAMEUCIQCMgYSwQ9go1jjAcC4SxpJl4moA8Ba/GEb0qwFPaNmSCwIgDEOo
UpUSNYEQJvahR4BxxVLOBf/CNlKhAGBVNKTccxk=
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIPp2yQwm9q6goxwC+FtMjEMTqlmqPszl36E9HaFw/kIyoAoGCCqGSM49
AwEHoUQDQgAEblZd6wRzRxOtteLJjwM2Ht81cMzOhQ7iMDXj3+Z/oXGnzr8tVbWm
lmkM2BYGKhzd/mhkhvy3mHRdKJmOzcTrtw==
MHcCAQEEIMQcu7NXkY6TE+7xNTSo8CTKG4Tp20CcWAAEVtRQAjlioAoGCCqGSM49
AwEHoUQDQgAEPSDwQSpKksFpMA3SvgEcNqpQZgQ/WxfBydM9z13imk5p5xASbtXt
L4x5frkBgc+cdbpQUVXquMYZpGbT2Qcjvg==
-----END EC PRIVATE KEY-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -0,0 +1,3 @@
-----BEGIN EC PRIVATE KEY-----
cu/PS7DoowDT5H5qEPYwvNVA3pM/Ae1TgIl/xeENyV0=
-----END EC PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWDCCAf+gAwIBAgIDCkQ5MAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MIICWTCCAf+gAwIBAgIDCGR3MAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzANBgNVBAoT
BkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1YjAgFw0y
MDAzMDQwODQ0MjRaGA8yMDcwMDIyMDA4NDQyNFowgZkxCzAJBgNVBAYTAkNOMREw
MDA4MTEwNTA3MTRaGA8yMDcwMDczMDA1MDcxNFowgZkxCzAJBgNVBAYTAkNOMREw
DwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ1pob3UxHzANBgNVBAkTBnN0
cmVldDAOBgNVBAkTB2FkZHJlc3MxDzANBgNVBBETBjMyNDAwMDEOMAwGA1UEChMF
Tm9kZTQxEDAOBgNVBAsTB0JpdFhIdWIxEDAOBgNVBAMTB0JpdFhIdWIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAARuDsfGfnzbqIZLSENOGJ72BfZW1NeKN8TsD/RD
j4Trb3kbyBmY7qntTvNR7HuDmFkCVcRFR16IBPV+E7VtulxZozEwLzAOBgNVHQ8B
hkjOPQIBBggqhkjOPQMBBwNCAARN1y/FhZpSg1kpXF38szDNRXdPkqoc8oRKdGzv
3HdhtBdUO7jXe2xNaWVtNMGXVo+NuBi5t9qEoo+euxfnjlc9ozEwLzAOBgNVHQ8B
Af8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMAoGCCqGSM49
BAMCA0cAMEQCIG96uffPzrEeYm688/GhV9d1gqaUTmQ1b4YYJo9GiNtiAiAVwBMc
oz12grMgErh3sHb1DsbwWcz1aL1PDynk40HrvQ==
BAMCA0gAMEUCIQCbsG7E158uzqYCzrrnrr2Xsnz7f5cFA2o4SXAF7R/IyAIgSxYS
MGj0g0OBcxJqwTyyvF2FFOhlWjF9nq2eYK/rlzI=
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDDlbCWaYt24ANXbRep+t7Keq0Zu5GckeDECSfEASTq2oAoGCCqGSM49
AwEHoUQDQgAEbg7Hxn5826iGS0hDThie9gX2VtTXijfE7A/0Q4+E6295G8gZmO6p
7U7zUex7g5hZAlXERUdeiAT1fhO1bbpcWQ==
MHcCAQEEIFWx/9axMGfzqOO/T3OEBXZNli6dkX/9m+o1GjnEX+I1oAoGCCqGSM49
AwEHoUQDQgAETdcvxYWaUoNZKVxd/LMwzUV3T5KqHPKESnRs79x3YbQXVDu413ts
TWllbTTBl1aPjbgYubfahKKPnrsX545XPQ==
-----END EC PRIVATE KEY-----

View File

@ -50,7 +50,7 @@ function generate() {
cp -rf "${PROJECT_PATH}"/internal/plugins/build/raft.so "${BUILD_PATH}"
"${BUILD_PATH}"/bitxhub cert ca
"${BUILD_PATH}"/bitxhub cert priv --name agency
"${BUILD_PATH}"/bitxhub cert priv gen --name agency
"${BUILD_PATH}"/bitxhub cert csr --key ./agency.priv --org Agency
"${BUILD_PATH}"/bitxhub cert issue --key ./ca.priv --cert ./ca.cert --csr ./agency.csr --is_ca true
rm agency.csr
@ -64,15 +64,16 @@ function generate() {
mkdir -p "${repo}"/certs
cd "${repo}"/certs
"${BUILD_PATH}"/bitxhub cert priv --name node
"${BUILD_PATH}"/bitxhub cert priv gen --name node
"${BUILD_PATH}"/bitxhub cert csr --key ./node.priv --org Node${i}
"${BUILD_PATH}"/bitxhub cert issue --key "${BUILD_PATH}"/agency.priv --cert "${BUILD_PATH}"/agency.cert --csr ./node.csr
"${BUILD_PATH}"/bitxhub key gen --name key
cp "${BUILD_PATH}"/ca.cert "${repo}"/certs
cp "${BUILD_PATH}"/agency.cert "${repo}"/certs
rm "${repo}"/certs/node.csr
id=$("${BUILD_PATH}"/bitxhub --repo="${repo}" key pid --path "${repo}"/certs/node.priv)
addr=$("${BUILD_PATH}"/bitxhub --repo="${repo}" key address --path "${repo}"/certs/node.priv)
id=$("${BUILD_PATH}"/bitxhub --repo="${repo}" cert priv pid --path "${repo}"/certs/node.priv)
addr=$("${BUILD_PATH}"/bitxhub --repo="${repo}" key address --path "${repo}"/certs/key.priv)
echo "${id}" >>"${BUILD_PATH}"/pids
echo "${addr}" >>"${BUILD_PATH}"/addresses

View File

@ -27,7 +27,7 @@ type API struct {
}
func (suite *API) SetupSuite() {
privKey, err := asym.GenerateKey(asym.ECDSASecp256r1)
privKey, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Assert().Nil(err)
from, err := privKey.PublicKey().Address()

View File

@ -7,8 +7,7 @@ import (
"testing"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
"github.com/meshplus/bitxhub-kit/key"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-kit/types"
"github.com/meshplus/bitxhub-model/pb"
"github.com/meshplus/bitxhub/internal/constant"
@ -39,7 +38,7 @@ type Appchain struct {
func (suite *RegisterAppchain) SetupSuite() {
var err error
suite.privKey, err = ecdsa.GenerateKey(ecdsa.Secp256r1)
suite.privKey, err = asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
suite.from, err = suite.privKey.PublicKey().Address()
@ -68,9 +67,9 @@ func (suite *RegisterAppchain) TestRegisterAppchain() {
}
func (suite *RegisterAppchain) TestFetchAppchains() {
k1, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k1, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
k2, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k2, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
pub1, err := k1.PublicKey().Bytes()
@ -146,9 +145,9 @@ func (suite *RegisterAppchain) TestFetchAppchains() {
}
func (suite *RegisterAppchain) TestGetPubKeyByChainID() {
k1, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k1, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
k2, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k2, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
pub1, err := k1.PublicKey().Bytes()
@ -195,7 +194,7 @@ func (suite *RegisterAppchain) TestGetPubKeyByChainID() {
}
func (suite *RegisterAppchain) TestUpdateAppchains() {
k1, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k1, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
pub1, err := k1.PublicKey().Bytes()
suite.Require().Nil(err)
@ -221,9 +220,7 @@ func (suite *RegisterAppchain) TestUpdateAppchains() {
//Admin Chain
path := "./test_data/config/node1/key.json"
keyPath := filepath.Join(path)
key, err := key.LoadKey(keyPath)
suite.Require().Nil(err)
priAdmin, err := key.GetPrivateKey("bitxhub")
priAdmin, err := asym.RestorePrivateKey(keyPath, "bitxhub")
suite.Require().Nil(err)
pubAdmin, err := priAdmin.PublicKey().Bytes()
suite.Require().Nil(err)

View File

@ -6,7 +6,8 @@ import (
"testing"
"time"
"github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-model/pb"
"github.com/meshplus/bitxhub/internal/constant"
"github.com/meshplus/bitxhub/internal/coreapi/api"
@ -23,9 +24,9 @@ func (suite *Interchain) SetupSuite() {
}
func (suite *Interchain) TestHandleIBTP() {
k1, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k1, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
k2, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k2, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
f, err := k1.PublicKey().Address()
suite.Require().Nil(err)
@ -82,9 +83,9 @@ func (suite *Interchain) TestHandleIBTP() {
}
func (suite *Interchain) TestGetIBTPByID() {
k1, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k1, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
k2, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k2, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
f, err := k1.PublicKey().Address()
suite.Require().Nil(err)
@ -161,7 +162,7 @@ func (suite *Interchain) TestGetIBTPByID() {
}
func (suite *Interchain) TestAudit() {
k, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
ret, err := invokeBVMContract(suite.api, k, constant.AppchainMgrContractAddr.Address(), "Audit",
@ -174,7 +175,7 @@ func (suite *Interchain) TestAudit() {
}
func (suite *Interchain) TestInterchain() {
k1, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k1, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
pub1, err := k1.PublicKey().Bytes()
@ -207,7 +208,7 @@ func (suite *Interchain) TestInterchain() {
}
func (suite *Interchain) TestRegister() {
k1, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k1, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
ret, err := invokeBVMContract(suite.api, k1, constant.InterchainContractAddr.Address(), "Register")

View File

@ -7,8 +7,7 @@ import (
"strconv"
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
"github.com/meshplus/bitxhub-kit/key"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-model/pb"
"github.com/meshplus/bitxhub/internal/constant"
"github.com/meshplus/bitxhub/internal/coreapi/api"
@ -25,7 +24,7 @@ type Role struct {
func (suite *Role) SetupSuite() {
var err error
suite.privKey, err = ecdsa.GenerateKey(ecdsa.Secp256r1)
suite.privKey, err = asym.GenerateKeyPair(crypto.Secp256k1)
suite.Assert().Nil(err)
suite.pubKey = suite.privKey.PublicKey()
@ -49,7 +48,7 @@ func (suite *Role) TestGetRole() {
suite.Require().Nil(err)
suite.Equal("appchain_admin", string(receipt.Ret))
k, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
r, err := invokeBVMContract(suite.api, k, constant.RoleContractAddr.Address(), "GetRole")
@ -58,7 +57,7 @@ func (suite *Role) TestGetRole() {
}
func (suite *Role) TestGetAdminRoles() {
k, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
r, err := invokeBVMContract(suite.api, k, constant.RoleContractAddr.Address(), "GetAdminRoles")
@ -69,7 +68,7 @@ func (suite *Role) TestGetAdminRoles() {
func (suite *Role) TestIsAdmin() {
// Not Admin Chain
k, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
from, err := k.PublicKey().Address()
suite.Require().Nil(err)
@ -83,9 +82,7 @@ func (suite *Role) TestIsAdmin() {
// Admin Chain
path := "./test_data/config/node1/key.json"
keyPath := filepath.Join(path)
key, err := key.LoadKey(keyPath)
suite.Require().Nil(err)
priAdmin, err := key.GetPrivateKey("bitxhub")
priAdmin, err := asym.RestorePrivateKey(keyPath, "bitxhub")
suite.Require().Nil(err)
fromAdmin, err := priAdmin.PublicKey().Address()
suite.Require().Nil(err)
@ -99,9 +96,9 @@ func (suite *Role) TestIsAdmin() {
}
func (suite *Role) TestGetRuleAddress() {
k1, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k1, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
k2, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k2, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
pub1, err := k1.PublicKey().Bytes()
@ -187,10 +184,7 @@ func (suite *Role) TestSetAdminRoles() {
// admin chain
path1 := "./test_data/config/node1/key.json"
keyPath1 := filepath.Join(path1)
key1, err := key.LoadKey(keyPath1)
suite.Require().Nil(err)
priAdmin, err := key1.GetPrivateKey("bitxhub")
priAdmin, err := asym.RestorePrivateKey(keyPath1, "bitxhub")
suite.Require().Nil(err)
fromAdmin, err := priAdmin.PublicKey().Address()
suite.Require().Nil(err)
@ -246,18 +240,11 @@ func (suite *Role) TestSetAdminRoles() {
keyPath3 := filepath.Join(path3)
keyPath4 := filepath.Join(path4)
key2, err := key.LoadKey(keyPath2)
priAdmin2, err := asym.RestorePrivateKey(keyPath2, "bitxhub")
suite.Require().Nil(err)
key3, err := key.LoadKey(keyPath3)
priAdmin3, err := asym.RestorePrivateKey(keyPath3, "bitxhub")
suite.Require().Nil(err)
key4, err := key.LoadKey(keyPath4)
suite.Require().Nil(err)
priAdmin2, err := key2.GetPrivateKey("bitxhub")
suite.Require().Nil(err)
priAdmin3, err := key3.GetPrivateKey("bitxhub")
suite.Require().Nil(err)
priAdmin4, err := key4.GetPrivateKey("bitxhub")
priAdmin4, err := asym.RestorePrivateKey(keyPath4, "bitxhub")
suite.Require().Nil(err)
fromAdmin2, err := priAdmin2.PublicKey().Address()

View File

@ -2,7 +2,7 @@ package tester
import (
"github.com/meshplus/bitxhub-kit/crypto"
"github.com/meshplus/bitxhub-kit/crypto/asym/ecdsa"
"github.com/meshplus/bitxhub-kit/crypto/asym"
"github.com/meshplus/bitxhub-model/pb"
"github.com/meshplus/bitxhub/internal/constant"
"github.com/meshplus/bitxhub/internal/coreapi/api"
@ -18,14 +18,14 @@ type Store struct {
func (suite *Store) SetupSuite() {
var err error
suite.privKey, err = ecdsa.GenerateKey(ecdsa.Secp256r1)
suite.privKey, err = asym.GenerateKeyPair(crypto.Secp256k1)
suite.Assert().Nil(err)
suite.pubKey = suite.privKey.PublicKey()
}
func (suite *Store) TestStore() {
k, err := ecdsa.GenerateKey(ecdsa.Secp256r1)
k, err := asym.GenerateKeyPair(crypto.Secp256k1)
suite.Require().Nil(err)
args := []*pb.Arg{

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -0,0 +1,3 @@
-----BEGIN EC PRIVATE KEY-----
tkdxQ+F/iJJjBE9s9GPcNxd6xFJsTDmno0QZhFcCSi8=
-----END EC PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWjCCAf+gAwIBAgIDC4rPMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MIICWjCCAf+gAwIBAgIDDhFLMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzANBgNVBAoT
BkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1YjAgFw0y
MDAzMDQwODQ0MjRaGA8yMDcwMDIyMDA4NDQyNFowgZkxCzAJBgNVBAYTAkNOMREw
MDA4MTEwNTA3MTNaGA8yMDcwMDczMDA1MDcxM1owgZkxCzAJBgNVBAYTAkNOMREw
DwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ1pob3UxHzANBgNVBAkTBnN0
cmVldDAOBgNVBAkTB2FkZHJlc3MxDzANBgNVBBETBjMyNDAwMDEOMAwGA1UEChMF
Tm9kZTExEDAOBgNVBAsTB0JpdFhIdWIxEDAOBgNVBAMTB0JpdFhIdWIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAAQi8bygCNVfLigWljvEOCr8gRlpTpfIEGoP+HL8
4BwKcSX1n0hZC3oTfv7fMMGxE7lVjZ26C5q54vJAliceljbPozEwLzAOBgNVHQ8B
hkjOPQIBBggqhkjOPQMBBwNCAATgjTYEnavxerFuEKJ8C39QUY12xh/TC2E5V7ni
nmQcOgDDRv5HW4sskTSm/WX2D0BMzwb7XE5ATyoDeM9qcurDozEwLzAOBgNVHQ8B
Af8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMAoGCCqGSM49
BAMCA0kAMEYCIQDrq69L8mxZReND60P6tXDW5AnR4sSS/yPTsmh31D6+EgIhAKh/
WpVWOgI8b/ltCWpufb3TUM3lEQrsXP4W28Uk7q1j
BAMCA0kAMEYCIQD5Oz1xJvFgzYm/lTzoaO/i0ayPVRgSdBwvK6hEICo5lAIhAMtG
aswjd2wVA4zB5GPEmJ/tvPUnxrlOAU67AQMYR4zf
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIFYN9+xvnRzlNX6Cob3trD3HlcvuYZUYRPrhYU+Yh2ADoAoGCCqGSM49
AwEHoUQDQgAEIvG8oAjVXy4oFpY7xDgq/IEZaU6XyBBqD/hy/OAcCnEl9Z9IWQt6
E37+3zDBsRO5VY2duguaueLyQJYnHpY2zw==
MHcCAQEEIJjph6szT64kRmvzyZYWYaonaFVsvTZwRLqeV20wo2D3oAoGCCqGSM49
AwEHoUQDQgAE4I02BJ2r8XqxbhCifAt/UFGNdsYf0wthOVe54p5kHDoAw0b+R1uL
LJE0pv1l9g9ATM8G+1xOQE8qA3jPanLqww==
-----END EC PRIVATE KEY-----

View File

@ -1,8 +1,8 @@
{
"addresses": [
"0xe6f8c9cf6e38bd506fae93b73ee5e80cc8f73667",
"0x8374bb1e41d4a4bb4ac465e74caa37d242825efc",
"0x759801eab44c9a9bbc3e09cb7f1f85ac57298708",
"0xf2d66e2c27e93ff083ee3999acb678a36bb349bb"
"0xc7F999b83Af6DF9e67d0a37Ee7e900bF38b3D013",
"0x79a1215469FaB6f9c63c1816b45183AD3624bE34",
"0x97c8B516D19edBf575D72a172Af7F418BE498C37",
"0xc0Ff2e0b3189132D815b8eb325bE17285AC898f8"
]
}

8
tester/test_data/config/node1/key.json Executable file → Normal file
View File

@ -1,5 +1,7 @@
{
"address": "0xe6f8c9cf6e38bd506fae93b73ee5e80cc8f73667",
"private_key": "b899679b51e2f81116c5489e6d873b4ea6a62817fc3c0db99cf7c6716b490df8997aa92937afb370d8537a36e4fd6116",
"encrypted": true
"type": 3,
"cipher": {
"data": "0cc41488c14ab2ffb65d68bf4f8c0997411a63299b1101e86254458855d34d5a77742b7ee409006e192ec4de68be4da3bbbf274255cd241d0d9593915415f91e",
"cipher": "AES-256"
}
}

View File

@ -1,6 +1,6 @@
addrs = [
["/ip4/127.0.0.1/tcp/4001/p2p/QmZZFk1Tj6p25ecz98SpyHxb6joDPxR3wVPptDwuc8fue1"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmNRgD6djYJERNpDpHqRn3mxjJ9SYiiGWzExNSy4sEmSNL"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmXmyw2usKApP6UyK3cHEJ1XvxxSa8kM2M3Q1T6fhdifs5"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmY21wH1M694j1JFEvwegyJz8h2VpaSeeqcwt2vUpxsFPt"]
]
["/ip4/127.0.0.1/tcp/4001/p2p/QmXi58fp9ZczF3Z5iz1yXAez3Hy5NYo1R8STHWKEM9XnTL"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmbmD1kzdsxRiawxu7bRrteDgW1ituXupR8GH6E2EUAHY4"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmQUcDYCtqbpn5Nhaw4FAGxQaSSNvdWfAFcpQT9SPiezbS"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmQW3bFn8XX1t4W14Pmn37bPJUpUVBrBjnPuBZwPog3Qdy"]
]

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -0,0 +1,3 @@
-----BEGIN EC PRIVATE KEY-----
BcNwjTDCxyxLNjFKQfMAc6sY6iJs+Ma59WZyC/4uhjE=
-----END EC PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWTCCAf+gAwIBAgIDB5GsMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MIICWjCCAf+gAwIBAgIDC8pcMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzANBgNVBAoT
BkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1YjAgFw0y
MDAzMDQwODQ0MjRaGA8yMDcwMDIyMDA4NDQyNFowgZkxCzAJBgNVBAYTAkNOMREw
MDA4MTEwNTA3MTNaGA8yMDcwMDczMDA1MDcxM1owgZkxCzAJBgNVBAYTAkNOMREw
DwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ1pob3UxHzANBgNVBAkTBnN0
cmVldDAOBgNVBAkTB2FkZHJlc3MxDzANBgNVBBETBjMyNDAwMDEOMAwGA1UEChMF
Tm9kZTIxEDAOBgNVBAsTB0JpdFhIdWIxEDAOBgNVBAMTB0JpdFhIdWIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAARNhmawbnCyMOZmKAsFOPIOGSJo0/l9RGCFUU+a
Cd6/apiwrwWD4RGKWGHwjFAXSRHpYUzuwXwyQrB4FtJZ/1xoozEwLzAOBgNVHQ8B
hkjOPQIBBggqhkjOPQMBBwNCAARhGDBod719hBcz/lpLtEh8GsqzDhm1ZbjdaTsM
GivsjOHRk9iEkwDtXmsMvYn3yOIq2RR60T7/G2swBzuZiZWxozEwLzAOBgNVHQ8B
Af8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMAoGCCqGSM49
BAMCA0gAMEUCIQDSF6I7+I23UmoNxERZ7PHvW4dsIFTHaCLUNl2pG9uiHAIgB898
yCHKASfneRgUxz5KZ1kvtcrnqC73muAxWz0TMEE=
BAMCA0kAMEYCIQDrX3znEJ6zkhUhPN37LY5eurrCs7Brp/TQ/2geHdZLQAIhALxb
Gk39mUrJ/4z/dVGwFYccWZB8UOV1M4iuN6ypF+Sc
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEP1ckhwUxWqpJqnKitIC/u8eWAsR/4I+aLJDesKB9XOoAoGCCqGSM49
AwEHoUQDQgAETYZmsG5wsjDmZigLBTjyDhkiaNP5fURghVFPmgnev2qYsK8Fg+ER
ilhh8IxQF0kR6WFM7sF8MkKweBbSWf9caA==
MHcCAQEEICI2QiahAMKtO9tD9VnxZ2J3jvFt+/vTAtcAQzUcIPoXoAoGCCqGSM49
AwEHoUQDQgAEYRgwaHe9fYQXM/5aS7RIfBrKsw4ZtWW43Wk7DBor7Izh0ZPYhJMA
7V5rDL2J98jiKtkUetE+/xtrMAc7mYmVsQ==
-----END EC PRIVATE KEY-----

View File

@ -1,8 +1,8 @@
{
"addresses": [
"0xe6f8c9cf6e38bd506fae93b73ee5e80cc8f73667",
"0x8374bb1e41d4a4bb4ac465e74caa37d242825efc",
"0x759801eab44c9a9bbc3e09cb7f1f85ac57298708",
"0xf2d66e2c27e93ff083ee3999acb678a36bb349bb"
"0xc7F999b83Af6DF9e67d0a37Ee7e900bF38b3D013",
"0x79a1215469FaB6f9c63c1816b45183AD3624bE34",
"0x97c8B516D19edBf575D72a172Af7F418BE498C37",
"0xc0Ff2e0b3189132D815b8eb325bE17285AC898f8"
]
}

8
tester/test_data/config/node2/key.json Executable file → Normal file
View File

@ -1,5 +1,7 @@
{
"address": "0x8374bb1e41d4a4bb4ac465e74caa37d242825efc",
"private_key": "b9e3b4277cfc589a3dff7d0aba7cac297b84465afc76a74f1d738e8165f2043d3a36500c0f193b6be994683bc42f1096",
"encrypted": true
"type": 3,
"cipher": {
"data": "f34b677119ad8b4671da3046c46cdf8ca6e11048792442a952ab342e0a891a03c6a33900079efdf1894798f702440dd0e25c94a512285d9d2dbd10b24573be6d",
"cipher": "AES-256"
}
}

View File

@ -1,6 +1,6 @@
addrs = [
["/ip4/127.0.0.1/tcp/4001/p2p/QmZZFk1Tj6p25ecz98SpyHxb6joDPxR3wVPptDwuc8fue1"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmNRgD6djYJERNpDpHqRn3mxjJ9SYiiGWzExNSy4sEmSNL"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmXmyw2usKApP6UyK3cHEJ1XvxxSa8kM2M3Q1T6fhdifs5"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmY21wH1M694j1JFEvwegyJz8h2VpaSeeqcwt2vUpxsFPt"]
]
["/ip4/127.0.0.1/tcp/4001/p2p/QmXi58fp9ZczF3Z5iz1yXAez3Hy5NYo1R8STHWKEM9XnTL"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmbmD1kzdsxRiawxu7bRrteDgW1ituXupR8GH6E2EUAHY4"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmQUcDYCtqbpn5Nhaw4FAGxQaSSNvdWfAFcpQT9SPiezbS"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmQW3bFn8XX1t4W14Pmn37bPJUpUVBrBjnPuBZwPog3Qdy"]
]

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -0,0 +1,3 @@
-----BEGIN EC PRIVATE KEY-----
halN1RQDWQ1PFJ+SMLb13joI5YiZ3K8Pd3aO+xgl6FQ=
-----END EC PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWDCCAf+gAwIBAgIDAv8gMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MIICWTCCAf+gAwIBAgIDCUHDMAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzANBgNVBAoT
BkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1YjAgFw0y
MDAzMDQwODQ0MjRaGA8yMDcwMDIyMDA4NDQyNFowgZkxCzAJBgNVBAYTAkNOMREw
MDA4MTEwNTA3MTRaGA8yMDcwMDczMDA1MDcxNFowgZkxCzAJBgNVBAYTAkNOMREw
DwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ1pob3UxHzANBgNVBAkTBnN0
cmVldDAOBgNVBAkTB2FkZHJlc3MxDzANBgNVBBETBjMyNDAwMDEOMAwGA1UEChMF
Tm9kZTMxEDAOBgNVBAsTB0JpdFhIdWIxEDAOBgNVBAMTB0JpdFhIdWIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAARuVl3rBHNHE6214smPAzYe3zVwzM6FDuIwNePf
5n+hcafOvy1VtaaWaQzYFgYqHN3+aGSG/LeYdF0omY7NxOu3ozEwLzAOBgNVHQ8B
hkjOPQIBBggqhkjOPQMBBwNCAAQ9IPBBKkqSwWkwDdK+ARw2qlBmBD9bF8HJ0z3P
XeKaTmnnEBJu1e0vjHl+uQGBz5x1ulBRVeq4xhmkZtPZByO+ozEwLzAOBgNVHQ8B
Af8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMAoGCCqGSM49
BAMCA0cAMEQCIDLIYh5ivZaag+wpW+dIuH0fn/qbF6LOzWqAMVp3w5iyAiA7goaw
Kzc9FkMNtBbWATkEHrTK83MgW4gj0K0OFmtM2w==
BAMCA0gAMEUCIQCMgYSwQ9go1jjAcC4SxpJl4moA8Ba/GEb0qwFPaNmSCwIgDEOo
UpUSNYEQJvahR4BxxVLOBf/CNlKhAGBVNKTccxk=
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIPp2yQwm9q6goxwC+FtMjEMTqlmqPszl36E9HaFw/kIyoAoGCCqGSM49
AwEHoUQDQgAEblZd6wRzRxOtteLJjwM2Ht81cMzOhQ7iMDXj3+Z/oXGnzr8tVbWm
lmkM2BYGKhzd/mhkhvy3mHRdKJmOzcTrtw==
MHcCAQEEIMQcu7NXkY6TE+7xNTSo8CTKG4Tp20CcWAAEVtRQAjlioAoGCCqGSM49
AwEHoUQDQgAEPSDwQSpKksFpMA3SvgEcNqpQZgQ/WxfBydM9z13imk5p5xASbtXt
L4x5frkBgc+cdbpQUVXquMYZpGbT2Qcjvg==
-----END EC PRIVATE KEY-----

View File

@ -1,8 +1,8 @@
{
"addresses": [
"0xe6f8c9cf6e38bd506fae93b73ee5e80cc8f73667",
"0x8374bb1e41d4a4bb4ac465e74caa37d242825efc",
"0x759801eab44c9a9bbc3e09cb7f1f85ac57298708",
"0xf2d66e2c27e93ff083ee3999acb678a36bb349bb"
"0xc7F999b83Af6DF9e67d0a37Ee7e900bF38b3D013",
"0x79a1215469FaB6f9c63c1816b45183AD3624bE34",
"0x97c8B516D19edBf575D72a172Af7F418BE498C37",
"0xc0Ff2e0b3189132D815b8eb325bE17285AC898f8"
]
}

8
tester/test_data/config/node3/key.json Executable file → Normal file
View File

@ -1,5 +1,7 @@
{
"address": "0x759801eab44c9a9bbc3e09cb7f1f85ac57298708",
"private_key": "ad69b589b7c218381b117382aea1003f4cdc6f32bcad41a4a5528bd48b486e0285e4a2fc0f64080c5d49082963fccb04",
"encrypted": true
"type": 3,
"cipher": {
"data": "de229ae3db9430070171fc37d242ac66e21c5c6e9f9cbefd6536345789fb444b8ec1d16bfe5eff8f3ccf1d0c28a92ffa667a919424f98324057910998a4d8f99",
"cipher": "AES-256"
}
}

View File

@ -1,6 +1,6 @@
addrs = [
["/ip4/127.0.0.1/tcp/4001/p2p/QmZZFk1Tj6p25ecz98SpyHxb6joDPxR3wVPptDwuc8fue1"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmNRgD6djYJERNpDpHqRn3mxjJ9SYiiGWzExNSy4sEmSNL"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmXmyw2usKApP6UyK3cHEJ1XvxxSa8kM2M3Q1T6fhdifs5"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmY21wH1M694j1JFEvwegyJz8h2VpaSeeqcwt2vUpxsFPt"]
]
["/ip4/127.0.0.1/tcp/4001/p2p/QmXi58fp9ZczF3Z5iz1yXAez3Hy5NYo1R8STHWKEM9XnTL"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmbmD1kzdsxRiawxu7bRrteDgW1ituXupR8GH6E2EUAHY4"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmQUcDYCtqbpn5Nhaw4FAGxQaSSNvdWfAFcpQT9SPiezbS"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmQW3bFn8XX1t4W14Pmn37bPJUpUVBrBjnPuBZwPog3Qdy"]
]

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICkTCCAjegAwIBAgIDCFlzMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIICkjCCAjegAwIBAgIDAoB1MAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGaMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEzWhgPMjA3MDA3MzAwNTA3MTNaMIGaMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzAN
BgNVBAoTBkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDtMPr3mXU6kqFlAC9QDD+IofJJW
phhBiNVqgKjVwuAnYdhONPtxHKK6wWBV5pwT2rLKQUOZjdIULNd+yjTGVy6jYTBf
YjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABETCj+MAoveSsjSLGr3y8F5IEccL
Afn8d9rmw3ON24Y6NzoqV72T+kvXP7lJlj+7bhYJRtXO3FiPDBp1fFQb1tyjYTBf
MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB
Af8wKwYDVR0jBCQwIoAgkq80RhqcgxYaYUzvK00siYzAYcEN0BdgUmnqZ5Fa9rIw
CgYIKoZIzj0EAwIDSAAwRQIhAIBVe6GWbBNAchWrU6jTXWR7BFCcI5uN2hGsmb2b
H7rxAiB6j/dmP16cBHj6FpeqeF48GMqxEY8cGOlGD1m556Db4A==
Af8wKwYDVR0jBCQwIoAgFjEjLDiDWrdUwpIcMxUaxWQSVMS7agCqo44QcOAMlYMw
CgYIKoZIzj0EAwIDSQAwRgIhAJeZBApwY2BtYXK28Wa0gzJ8Nc9pjhtX2UFoc7cl
YilwAiEA3m60eyYQj/BiSDZ8+kZbUJO2C7y0HaT1xwNdjSZBFhI=
-----END CERTIFICATE-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIClzCCAjygAwIBAgIDAZBcMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MIIClTCCAjygAwIBAgIDAKWTMAoGCCqGSM49BAMCMIGhMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzARBgNVBAoT
Ckh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJpdHhodWIu
Y24wIBcNMjAwMzA0MDg0NDIyWhgPMjA3MDAyMjAwODQ0MjJaMIGhMQswCQYDVQQG
Y24wIBcNMjAwODExMDUwNzEyWhgPMjA3MDA3MzAwNTA3MTJaMIGhMQswCQYDVQQG
EwJDTjERMA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYD
VQQJEwZzdHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxEzAR
BgNVBAoTCkh5cGVyY2hhaW4xEDAOBgNVBAsTB0JpdFhIdWIxEzARBgNVBAMTCmJp
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSk9sbU3nPwrFBokQC
Hnw6KfX4TJleYLxTCgQ+JNprzXgSuqRNZcuRAUW9ZjXuV8UFdEvk+R9dwiCCIJtr
wQRBo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCCSrzRGGpyDFhphTO8rTSyJjMBhwQ3QF2BSaepn
kVr2sjAKBggqhkjOPQQDAgNJADBGAiEAyW+stMmrW/ADCcEoSCW+WFp8+R+b3xC7
TXkeulinQ0kCIQDbk0a04PxAIPP8TPHPeekqpVmNzcnAhjh73vzVxycD3Q==
dHhodWIuY24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASznYuB78fMNqgooAnp
YPUfWoQCDAM0nV5YwSj1Rz6RcWKuRAPQooPFb8K2WO6hfRUGtCba+l48FD34R/RP
aajqo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
Af8EBTADAQH/MCkGA1UdDgQiBCAWMSMsOINat1TCkhwzFRrFZBJUxLtqAKqjjhBw
4AyVgzAKBggqhkjOPQQDAgNHADBEAiAW5pb+b2aLuEBJCkaEXfukb/HwFsNm7zmx
Ha6oyk0HYAIgXhsMYlIXKf5RmlBFiEWZZRJTyiubI7NDqN5+JlVBAog=
-----END CERTIFICATE-----

View File

@ -0,0 +1,3 @@
-----BEGIN EC PRIVATE KEY-----
cu/PS7DoowDT5H5qEPYwvNVA3pM/Ae1TgIl/xeENyV0=
-----END EC PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWDCCAf+gAwIBAgIDCkQ5MAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MIICWTCCAf+gAwIBAgIDCGR3MAoGCCqGSM49BAMCMIGaMQswCQYDVQQGEwJDTjER
MA8GA1UECBMIWmhlSmlhbmcxETAPBgNVBAcTCEhhbmdaaG91MR8wDQYDVQQJEwZz
dHJlZXQwDgYDVQQJEwdhZGRyZXNzMQ8wDQYDVQQREwYzMjQwMDAxDzANBgNVBAoT
BkFnZW5jeTEQMA4GA1UECxMHQml0WEh1YjEQMA4GA1UEAxMHQml0WEh1YjAgFw0y
MDAzMDQwODQ0MjRaGA8yMDcwMDIyMDA4NDQyNFowgZkxCzAJBgNVBAYTAkNOMREw
MDA4MTEwNTA3MTRaGA8yMDcwMDczMDA1MDcxNFowgZkxCzAJBgNVBAYTAkNOMREw
DwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ1pob3UxHzANBgNVBAkTBnN0
cmVldDAOBgNVBAkTB2FkZHJlc3MxDzANBgNVBBETBjMyNDAwMDEOMAwGA1UEChMF
Tm9kZTQxEDAOBgNVBAsTB0JpdFhIdWIxEDAOBgNVBAMTB0JpdFhIdWIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAARuDsfGfnzbqIZLSENOGJ72BfZW1NeKN8TsD/RD
j4Trb3kbyBmY7qntTvNR7HuDmFkCVcRFR16IBPV+E7VtulxZozEwLzAOBgNVHQ8B
hkjOPQIBBggqhkjOPQMBBwNCAARN1y/FhZpSg1kpXF38szDNRXdPkqoc8oRKdGzv
3HdhtBdUO7jXe2xNaWVtNMGXVo+NuBi5t9qEoo+euxfnjlc9ozEwLzAOBgNVHQ8B
Af8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAMBgNVHRMBAf8EAjAAMAoGCCqGSM49
BAMCA0cAMEQCIG96uffPzrEeYm688/GhV9d1gqaUTmQ1b4YYJo9GiNtiAiAVwBMc
oz12grMgErh3sHb1DsbwWcz1aL1PDynk40HrvQ==
BAMCA0gAMEUCIQCbsG7E158uzqYCzrrnrr2Xsnz7f5cFA2o4SXAF7R/IyAIgSxYS
MGj0g0OBcxJqwTyyvF2FFOhlWjF9nq2eYK/rlzI=
-----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDDlbCWaYt24ANXbRep+t7Keq0Zu5GckeDECSfEASTq2oAoGCCqGSM49
AwEHoUQDQgAEbg7Hxn5826iGS0hDThie9gX2VtTXijfE7A/0Q4+E6295G8gZmO6p
7U7zUex7g5hZAlXERUdeiAT1fhO1bbpcWQ==
MHcCAQEEIFWx/9axMGfzqOO/T3OEBXZNli6dkX/9m+o1GjnEX+I1oAoGCCqGSM49
AwEHoUQDQgAETdcvxYWaUoNZKVxd/LMwzUV3T5KqHPKESnRs79x3YbQXVDu413ts
TWllbTTBl1aPjbgYubfahKKPnrsX545XPQ==
-----END EC PRIVATE KEY-----

View File

@ -1,8 +1,8 @@
{
"addresses": [
"0xe6f8c9cf6e38bd506fae93b73ee5e80cc8f73667",
"0x8374bb1e41d4a4bb4ac465e74caa37d242825efc",
"0x759801eab44c9a9bbc3e09cb7f1f85ac57298708",
"0xf2d66e2c27e93ff083ee3999acb678a36bb349bb"
"0xc7F999b83Af6DF9e67d0a37Ee7e900bF38b3D013",
"0x79a1215469FaB6f9c63c1816b45183AD3624bE34",
"0x97c8B516D19edBf575D72a172Af7F418BE498C37",
"0xc0Ff2e0b3189132D815b8eb325bE17285AC898f8"
]
}

8
tester/test_data/config/node4/key.json Executable file → Normal file
View File

@ -1,5 +1,7 @@
{
"address": "0xf2d66e2c27e93ff083ee3999acb678a36bb349bb",
"private_key": "b78b346732112129c1a8e82e0526523d29a0eeb92e8d5236e5433dcd203a19c2949a564e2075b2b873939967f1e2e0d2",
"encrypted": true
"type": 3,
"cipher": {
"data": "114b5019577da63a16974b170dd818e41ab5090a0e590290324d00d8a34c612dd1a974133f59188f44bb17c7805c0395ba0a363194c2ac59cabfeb7f31a6797a",
"cipher": "AES-256"
}
}

View File

@ -1,6 +1,6 @@
addrs = [
["/ip4/127.0.0.1/tcp/4001/p2p/QmZZFk1Tj6p25ecz98SpyHxb6joDPxR3wVPptDwuc8fue1"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmNRgD6djYJERNpDpHqRn3mxjJ9SYiiGWzExNSy4sEmSNL"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmXmyw2usKApP6UyK3cHEJ1XvxxSa8kM2M3Q1T6fhdifs5"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmY21wH1M694j1JFEvwegyJz8h2VpaSeeqcwt2vUpxsFPt"]
]
["/ip4/127.0.0.1/tcp/4001/p2p/QmXi58fp9ZczF3Z5iz1yXAez3Hy5NYo1R8STHWKEM9XnTL"],
["/ip4/127.0.0.1/tcp/4002/p2p/QmbmD1kzdsxRiawxu7bRrteDgW1ituXupR8GH6E2EUAHY4"],
["/ip4/127.0.0.1/tcp/4003/p2p/QmQUcDYCtqbpn5Nhaw4FAGxQaSSNvdWfAFcpQT9SPiezbS"],
["/ip4/127.0.0.1/tcp/4004/p2p/QmQW3bFn8XX1t4W14Pmn37bPJUpUVBrBjnPuBZwPog3Qdy"]
]