Unverified Commit cf216df2 authored by 33cn's avatar 33cn Committed by GitHub

Merge pull request #858 from bysomeone/update-chain33

Update chain33
parents a344d03e 12221338
......@@ -9,9 +9,9 @@ clone_folder: c:\gopath\src\github.com\33cn\plugin
environment:
GOPATH: c:\gopath
DEPTESTBYPASS501: 1
GOVERSION: 1.12
GOVERSION: 1.13.9
GO111MODULE: on
#init:
# - git config --global core.autocrlf input
......
......@@ -3,11 +3,12 @@ module github.com/33cn/plugin
go 1.12
require (
github.com/33cn/chain33 v0.0.0-20200605043414-355d96f9ec97
github.com/33cn/chain33 v0.0.0-20200618095014-8773a3526b6f
github.com/BurntSushi/toml v0.3.1
github.com/NebulousLabs/Sia v1.3.7
github.com/beorn7/perks v1.0.1 // indirect
github.com/bitly/go-simplejson v0.5.0
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect
github.com/btcsuite/btcd v0.20.1-beta
github.com/coreos/etcd v3.3.15+incompatible
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect
......@@ -17,7 +18,7 @@ require (
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
github.com/golang/protobuf v1.3.4
github.com/hashicorp/golang-lru v0.5.3
github.com/hashicorp/golang-lru v0.5.4
github.com/huin/goupnp v1.0.0
github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458
github.com/miguelmota/go-solidity-sha3 v0.1.0
......@@ -32,13 +33,13 @@ require (
github.com/rs/cors v1.6.0
github.com/spf13/cobra v0.0.5
github.com/stretchr/testify v1.4.0
github.com/tjfoc/gmsm v0.0.0-20171124023159-98aa888b79d8
github.com/tjfoc/gmsm v1.3.1
github.com/valyala/fasthttp v1.5.0
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect
go.uber.org/atomic v1.4.0 // indirect
go.uber.org/multierr v1.2.0 // indirect
go.uber.org/zap v1.10.0 // indirect
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550
golang.org/x/crypto v0.0.0-20191219195013-becbf705a915
golang.org/x/net v0.0.0-20200301022130-244492dfa37a
golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0 // indirect
google.golang.org/grpc v1.28.0
......
This diff is collapsed.
......@@ -10,6 +10,8 @@ import (
"testing"
"time"
"github.com/33cn/chain33/system/p2p/dht/protocol"
"github.com/33cn/chain33/common/crypto"
"github.com/33cn/chain33/executor"
"github.com/33cn/chain33/p2p"
......@@ -435,6 +437,7 @@ func TestIP2IPPort(t *testing.T) {
func TestNode(t *testing.T) {
fmt.Println("=======start TestNode!=======")
Init()
protocol.ClearEventHandler()
q1, chain1, s1, mem1, exec1, cs1, p2p1 := initEnvDpos1("chain33.test1.toml")
defer clearTestData1()
......
......@@ -6,6 +6,7 @@ import (
"os"
"strings"
"sync"
"syscall"
"testing"
"time"
......@@ -19,6 +20,8 @@ func init() {
func TestWriteFile(t *testing.T) {
filename := "./tmp_priv_validator.json"
mask := syscall.Umask(0)
defer syscall.Umask(mask)
err := WriteFile(filename, []byte(privValidatorFile), 0664)
require.Nil(t, err)
......@@ -35,6 +38,8 @@ func TestWriteFile(t *testing.T) {
}
func TestWriteFileAtomic(t *testing.T) {
mask := syscall.Umask(0)
defer syscall.Umask(mask)
filename := "./tmp_priv_validator.json"
err := WriteFileAtomic(filename, []byte(privValidatorFile), 0664)
require.Nil(t, err)
......
......@@ -303,6 +303,6 @@ const Name = "bls"
const ID = 259
func init() {
crypto.Register(Name, &Driver{})
crypto.Register(Name, &Driver{}, false)
crypto.RegisterType(Name, ID)
}
......@@ -223,7 +223,7 @@ const Name = "auth_ecdsa"
const ID = 257
func init() {
crypto.Register(Name, &Driver{})
crypto.Register(Name, &Driver{}, false)
crypto.RegisterType(Name, ID)
}
......
......@@ -17,6 +17,6 @@ const name = "auth_sm2"
const id = 258
func init() {
crypto.Register(name, &sm2Driver{})
crypto.Register(name, &sm2Driver{}, false)
crypto.RegisterType(name, id)
}
......@@ -90,7 +90,8 @@ func (validator *gmValidator) Validate(certByte []byte, pubKey []byte) error {
return fmt.Errorf("Error publick key type in transaction. expect SM2")
}
if !bytes.Equal(pubKey, sm2_util.SerializePublicKey(ParseECDSAPubKey2SM2PubKey(certPubKey))) {
if !bytes.Equal(pubKey, sm2_util.SerializePublicKey(
ParseECDSAPubKey2SM2PubKey(certPubKey), len(pubKey) == sm2_util.SM2PublicKeyCompressed)) {
return fmt.Errorf("Invalid public key")
}
......
-----BEGIN CERTIFICATE-----
MIIB7TCCAZKgAwIBAgIRAK66R1SxVZQDN0Dkz0ZhbCcwCgYIKoEcz1UBg3UwRzEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xCzAJBgNVBAMTAmNhMB4XDTE4MDcxOTAyNTMxMVoXDTI4MDcxNjAy
NTMxMVowRzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNV
BAcTDVNhbiBGcmFuY2lzY28xCzAJBgNVBAMTAmNhMFkwEwYHKoZIzj0CAQYIKoEc
z1UBgi0DQgAEieMcW/533Qz8Vpgz/SkxO8/FWEzTGg66kgg3Yk2kcWajoPm4JL5B
Zz/gs0DR/PD5FnwCiLRxbFS5U5DKgRLCQKNfMF0wDgYDVR0PAQH/BAQDAgGmMA8G
A1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgnl+NdM85
BZ7lCPe16SCHjs/jnObR8vk6oGNJf6PDOKwwCgYIKoEcz1UBg3UDSQAwRgIhAKZm
F7/VeFA7Lye2QP2OG5/ZZnN/95FhW3YBVoEudeQDAiEAlqZOJ2yDoCr9YJ0xcdOM
L8pSDDRDCvGds8+nemzYtpw=
MIIB6zCCAZGgAwIBAgIQVq9SxucwdINw2WUMlNFpdjAKBggqgRzPVQGDdTBHMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzELMAkGA1UEAxMCY2EwHhcNMjAwNjE4MDMxNDQ2WhcNMzAwNjE2MDMx
NDQ2WjBHMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzELMAkGA1UEAxMCY2EwWTATBgcqhkjOPQIBBggqgRzP
VQGCLQNCAARACzXYM8dLleVhjAwyljePO1Vltf2YL2xGKCLAB1/YITkM4q3GVE8D
LZxsydaG0zncKUswQA97HM6F1qarbFuvo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYD
VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCDpAuHxKpzW
gxCIZxodcdzpHpzKFhlEJARmhKOPuN1yaTAKBggqgRzPVQGDdQNIADBFAiEAowXR
RYYCWcBT0gVSbHk7k+aJzG3uRdORTbbvmLgbG2QCIF3e0/m0aNRlvF6gPxBJ+JBR
R0sbv9eyrSEFMwx/ZyGJ
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQg86AAL0bRgFW6RhFX
no7CVphI1U2csfrjwPuYn3FXaF2gCgYIKoEcz1UBgi2hRANCAASR8Yb//+y/GMLy
D36FLLO80oxUPtD6AtVoh9UIuC1b0QzA4+zkUDUk3zwdZ1pMZZKGZ48vE6KtAcFB
uqU7L784
-----END PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgUDB2WJbWpyxcbwXq
m951EkEDNdRmUo6tzgtFy7nmcVegCgYIKoEcz1UBgi2hRANCAATPC6Ja8zQ9hhaL
eusbDK9ttb4a4yRjAWKXUDjO3r/zA6ROmeTQAc/fNlZXxKr+TXiAe+r2fBGBIRr3
hhql7gqw
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIB5DCCAYqgAwIBAgIRAOQUQ5hzHvaJCs4FzFKJnM8wCgYIKoEcz1UBg3UwRzEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xCzAJBgNVBAMTAmNhMB4XDTE4MDcxOTAyNTMxMVoXDTI4MDcxNjAy
NTMxMVowUTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNV
BAcTDVNhbiBGcmFuY2lzY28xFTATBgNVBAMMDFVzZXJAQ2hhaW4zMzBZMBMGByqG
SM49AgEGCCqBHM9VAYItA0IABM8LolrzND2GFot66xsMr221vhrjJGMBYpdQOM7e
v/MDpE6Z5NABz982VlfEqv5NeIB76vZ8EYEhGveGGqXuCrCjTTBLMA4GA1UdDwEB
/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJ5fjXTPOQWe5Qj3tekg
h47P45zm0fL5OqBjSX+jwzisMAoGCCqBHM9VAYN1A0gAMEUCIA2zO2rS86QfOeni
/6fE4Gi1HU93Kc7vWqMIeWWoKw1mAiEA8cKpU/yoA9saKqeDmTdp5EIbRdxm33Sk
7PV9pdBVWYU=
MIIB4zCCAYmgAwIBAgIQdKBE3pdDBMaadMbZ30K7aTAKBggqgRzPVQGDdTBHMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzELMAkGA1UEAxMCY2EwHhcNMjAwNjE4MDMxNDQ2WhcNMzAwNjE2MDMx
NDQ2WjBRMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEVMBMGA1UEAwwMVXNlckBDaGFpbjMzMFkwEwYHKoZI
zj0CAQYIKoEcz1UBgi0DQgAEkfGG///svxjC8g9+hSyzvNKMVD7Q+gLVaIfVCLgt
W9EMwOPs5FA1JN88HWdaTGWShmePLxOirQHBQbqlOy+/OKNNMEswDgYDVR0PAQH/
BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAg6QLh8Sqc1oMQiGcaHXHc
6R6cyhYZRCQEZoSjj7jdcmkwCgYIKoEcz1UBg3UDSAAwRQIgBSqSzSkoXopLR830
zMjWsMVlZERtUuW3+uYm+bCRjOgCIQDZf8dKxkBd155hiilDQ4RR4Xa8+ZGcPslm
Nm+S1txiqA==
-----END CERTIFICATE-----
......@@ -19,7 +19,7 @@ func (s *sm2Signer) Sign(k Key, digest []byte, opts SignerOpts) (signature []byt
}
func signSM2(k *sm2.PrivateKey, digest []byte, opts SignerOpts) (signature []byte, err error) {
r, s, err := sm2.Sign(k, digest)
r, s, err := sm2.Sm2Sign(k, digest, nil)
if err != nil {
return nil, err
}
......
......@@ -220,7 +220,7 @@ func newSM2CA(baseDir, name string) (*SM2CA, error) {
sm2cert := utils.ParseX509CertificateToSm2(&template)
sm2cert.PublicKey = smPubKey
x509Cert, err := genCertificateGMSM2(baseDir, name, sm2cert, sm2cert, priv)
x509Cert, err := genCertificateGMSM2(baseDir, name, sm2cert, sm2cert, signer)
if err == nil {
ca = &SM2CA{
Name: name,
......@@ -247,7 +247,7 @@ func (ca *SM2CA) SignCertificate(baseDir, name string, sans []string, pub interf
template.PublicKey = pub
sm2Tpl := utils.ParseX509CertificateToSm2(&template)
cert, err := genCertificateGMSM2(baseDir, name, sm2Tpl, ca.SignCert, ca.Sm2Key)
cert, err := genCertificateGMSM2(baseDir, name, sm2Tpl, ca.SignCert, ca.Signer)
if err != nil {
return nil, err
}
......@@ -282,7 +282,7 @@ func (ca *SM2CA) GenerateLocalUser(baseDir, name string) error {
return err
}
func genCertificateGMSM2(baseDir, name string, template, parent *sm2.Certificate, key csp.Key) (*sm2.Certificate, error) {
func genCertificateGMSM2(baseDir, name string, template, parent *sm2.Certificate, key crypto.Signer) (*sm2.Certificate, error) {
certBytes, err := utils.CreateCertificateToMem(template, parent, key)
if err != nil {
return nil, err
......
......@@ -5,40 +5,64 @@
package utils
import (
"crypto"
"crypto/rand"
"crypto/x509"
"encoding/pem"
"os"
"github.com/33cn/plugin/plugin/dapp/cert/authority/tools/cryptogen/factory/csp"
"github.com/tjfoc/gmsm/sm2"
)
// CreateCertificateToMem 证书转mem
func CreateCertificateToMem(template, parent *sm2.Certificate, key csp.Key) (cert []byte, err error) {
pk := key.(*csp.SM2PrivateKey).PrivKey
func CreateCertificateToMem(template, parent *sm2.Certificate, key crypto.Signer) ([]byte, error) {
pub, _ := template.PublicKey.(*sm2.PublicKey)
var puk sm2.PublicKey
puk.Curve = sm2.P256Sm2()
puk.X = pub.X
puk.Y = pub.Y
cert, err = sm2.CreateCertificateToMem(template, parent, &puk, pk)
return
der, err := sm2.CreateCertificate(rand.Reader, template, parent, &puk, key)
if err != nil {
return nil, err
}
block := &pem.Block{
Type: "CERTIFICATE",
Bytes: der,
}
return pem.EncodeToMemory(block), nil
}
// CreateCertificateToPem 证书转pem
func CreateCertificateToPem(FileName string, template, parent *sm2.Certificate, key csp.Key) error {
pk := key.(*csp.SM2PrivateKey).PrivKey
func CreateCertificateToPem(FileName string, template, parent *sm2.Certificate, key crypto.Signer) error {
pub, _ := template.PublicKey.(*sm2.PublicKey)
var puk sm2.PublicKey
puk.Curve = sm2.P256Sm2()
puk.X = pub.X
puk.Y = pub.Y
_, err := sm2.CreateCertificateToPem(FileName, template, parent, &puk, pk)
return err
der, err := sm2.CreateCertificate(rand.Reader, template, parent, &puk, key)
if err != nil {
return err
}
block := &pem.Block{
Type: "CERTIFICATE",
Bytes: der,
}
file, err := os.Create(FileName)
if err != nil {
return err
}
defer file.Close()
err = pem.Encode(file, block)
if err != nil {
return err
}
return nil
}
// ParseX509CertificateToSm2 解析x509格式为sm2格式证书
......@@ -51,7 +75,7 @@ func ParseX509CertificateToSm2(x509Cert *x509.Certificate) *sm2.Certificate {
RawIssuer: x509Cert.RawIssuer,
Signature: x509Cert.Signature,
SignatureAlgorithm: sm2.SignatureAlgorithm(x509Cert.SignatureAlgorithm),
SignatureAlgorithm: sm2.SM2WithSM3,
PublicKeyAlgorithm: sm2.PublicKeyAlgorithm(x509Cert.PublicKeyAlgorithm),
PublicKey: x509Cert.PublicKey,
......
......@@ -16,7 +16,7 @@ import (
type oneTimeEd25519 struct{}
func init() {
crypto.Register(privacytypes.SignNameOnetimeED25519, &oneTimeEd25519{})
crypto.Register(privacytypes.SignNameOnetimeED25519, &oneTimeEd25519{}, false)
}
func (onetime *oneTimeEd25519) GenKey() (crypto.PrivKey, error) {
......
......@@ -21,7 +21,7 @@ import (
)
func init() {
crypto.Register(privacytypes.SignNameRing, &RingSignED25519{})
crypto.Register(privacytypes.SignNameRing, &RingSignED25519{}, false)
crypto.RegisterType(privacytypes.SignNameRing, privacytypes.RingBaseonED25519)
}
......
......@@ -149,11 +149,11 @@ func (mock *testDataMock) importPrivateKey(PrivKey *types.ReqWalletImportPrivkey
return
}
pub, err := bipwallet.PrivkeyToPub(cointype, privkeybyte)
pub, err := bipwallet.PrivkeyToPub(cointype, uint32(signType), privkeybyte)
if err != nil {
return
}
addr, err := bipwallet.PubToAddress(cointype, pub)
addr, err := bipwallet.PubToAddress(pub)
if err != nil {
return
}
......
......@@ -278,3 +278,8 @@ func (_m *walletOperateMock) WaitTx(hash []byte) *types.TransactionDetail {
func (_m *walletOperateMock) WaitTxs(hashes [][]byte) []*types.TransactionDetail {
return nil
}
// GetCoinType provides a mock function with given fields:
func (_m *walletOperateMock) GetCoinType() uint32 {
return 0
}
......@@ -28,7 +28,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/crypto"
"github.com/influxdata/influxdb/pkg/testing/assert"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
)
......
......@@ -51,6 +51,7 @@ func (mem *Mempool) SetQueueClient(client queue.Client) {
reply, err = mem.mainGrpcCli.GetProperFee(context.Background(), &types.ReqProperFee{})
default:
msg.Reply(client.NewMessage(mem.key, types.EventReply, types.ErrActionNotSupport))
continue
}
if err != nil {
msg.Reply(client.NewMessage(mem.key, types.EventReply, err))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment