• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang primitives.GetDefaultCurve函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/hyperledger/fabric/core/crypto/primitives.GetDefaultCurve函数的典型用法代码示例。如果您正苦于以下问题:Golang GetDefaultCurve函数的具体用法?Golang GetDefaultCurve怎么用?Golang GetDefaultCurve使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了GetDefaultCurve函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: generateKey

func generateKey() primitives.PrivateKey {
	kg, _ := newKeyGenerator()
	kgparams, _ := newKeyGeneratorParameter(rand.Reader, primitives.GetDefaultCurve())
	kg.Init(kgparams)
	privKey, _ := kg.GenerateKey()
	return privKey
}
开发者ID:RicHernandez2,项目名称:fabric,代码行数:7,代码来源:spi_test.go


示例2: newKeyGeneratorFromCurve

func newKeyGeneratorFromCurve(r io.Reader, curve elliptic.Curve) (primitives.KeyGenerator, error) {
	if r == nil {
		r = rand.Reader
	}
	if curve == nil {
		curve = primitives.GetDefaultCurve()
	}

	kg, err := newKeyGenerator()
	if err != nil {
		return nil, err
	}

	kgp, err := newKeyGeneratorParameter(r, curve)
	if err != nil {
		return nil, err
	}

	err = kg.Init(kgp)
	if err != nil {
		return nil, err
	}

	return kg, nil
}
开发者ID:RJAugust,项目名称:fabric,代码行数:25,代码来源:spi.go


示例3: createCAKeyPair

func (ca *CA) createCAKeyPair(name string) *ecdsa.PrivateKey {
	caLogger.Debug("Creating CA key pair.")

	curve := primitives.GetDefaultCurve()

	priv, err := ecdsa.GenerateKey(curve, rand.Reader)
	if err == nil {
		raw, _ := x509.MarshalECPrivateKey(priv)
		cooked := pem.EncodeToMemory(
			&pem.Block{
				Type:  "ECDSA PRIVATE KEY",
				Bytes: raw,
			})
		err = ioutil.WriteFile(ca.path+"/"+name+".priv", cooked, 0644)
		if err != nil {
			caLogger.Panic(err)
		}

		raw, _ = x509.MarshalPKIXPublicKey(&priv.PublicKey)
		cooked = pem.EncodeToMemory(
			&pem.Block{
				Type:  "ECDSA PUBLIC KEY",
				Bytes: raw,
			})
		err = ioutil.WriteFile(ca.path+"/"+name+".pub", cooked, 0644)
		if err != nil {
			caLogger.Panic(err)
		}
	}
	if err != nil {
		caLogger.Panic(err)
	}

	return priv
}
开发者ID:yoshiharay,项目名称:fabric,代码行数:35,代码来源:ca.go


示例4: newPrivateKey

func newPrivateKey(r io.Reader, curve elliptic.Curve) (primitives.PrivateKey, error) {
	if r == nil {
		r = rand.Reader
	}
	if curve == nil {
		curve = primitives.GetDefaultCurve()
	}
	kg, err := newKeyGeneratorFromCurve(r, curve)
	if err != nil {
		return nil, err
	}
	return kg.GenerateKey()
}
开发者ID:RJAugust,项目名称:fabric,代码行数:13,代码来源:spi.go


示例5: TestMain

func TestMain(m *testing.M) {
	setupTestConfig()
	curve := primitives.GetDefaultCurve()
	fmt.Printf("Default Curve %v \n", curve)
	// Init PKI
	initPKI()
	go startPKI()
	defer cleanup()
	time.Sleep(time.Second * 10)
	fmt.Println("Running tests....")
	ret := m.Run()
	fmt.Println("End running tests....")
	cleanupFiles()
	os.Exit(ret)

}
开发者ID:Colearo,项目名称:fabric,代码行数:16,代码来源:membersrvc_test.go


示例6: TestKG

func TestKG(t *testing.T) {
	kg, err := newKeyGenerator()
	if err != nil {
		t.Fatal(err)
	}

	kgparams, err := newKeyGeneratorParameter(rand.Reader, primitives.GetDefaultCurve())
	if err != nil {
		t.Fatal(err)
	}
	err = kg.Init(kgparams)
	if err != nil {
		t.Fatal(err)
	}
	privKey, err := kg.GenerateKey()
	if err != nil {
		t.Fatal(err)
	}
	if privKey == nil {
		t.Fatal("Private Key is nil")
	}
}
开发者ID:RicHernandez2,项目名称:fabric,代码行数:22,代码来源:spi_test.go


示例7: NewDefaultPrivateKey

func (spi *spiImpl) NewDefaultPrivateKey(r io.Reader) (primitives.PrivateKey, error) {
	return spi.NewPrivateKey(r, primitives.GetDefaultCurve())
}
开发者ID:RJAugust,项目名称:fabric,代码行数:3,代码来源:spi.go


示例8: encryptTxVersion1_2

func (client *clientImpl) encryptTxVersion1_2(tx *obc.Transaction) error {
	// Create (PK_C,SK_C) pair
	ccPrivateKey, err := client.eciesSPI.NewPrivateKey(rand.Reader, primitives.GetDefaultCurve())
	if err != nil {
		client.Errorf("Failed generate chaincode keypair: [%s]", err)

		return err
	}

	// Prepare message to the validators
	var (
		stateKey  []byte
		privBytes []byte
	)

	switch tx.Type {
	case obc.Transaction_CHAINCODE_DEPLOY:
		// Prepare chaincode stateKey and privateKey
		stateKey, err = primitives.GenAESKey()
		if err != nil {
			client.Errorf("Failed creating state key: [%s]", err)

			return err
		}

		privBytes, err = client.eciesSPI.SerializePrivateKey(ccPrivateKey)
		if err != nil {
			client.Errorf("Failed serializing chaincode key: [%s]", err)

			return err
		}

		break
	case obc.Transaction_CHAINCODE_QUERY:
		// Prepare chaincode stateKey and privateKey
		stateKey = primitives.HMACAESTruncated(client.queryStateKey, append([]byte{6}, tx.Nonce...))

		privBytes, err = client.eciesSPI.SerializePrivateKey(ccPrivateKey)
		if err != nil {
			client.Errorf("Failed serializing chaincode key: [%s]", err)

			return err
		}

		break
	case obc.Transaction_CHAINCODE_INVOKE:
		// Prepare chaincode stateKey and privateKey
		stateKey = make([]byte, 0)

		privBytes, err = client.eciesSPI.SerializePrivateKey(ccPrivateKey)
		if err != nil {
			client.Errorf("Failed serializing chaincode key: [%s]", err)

			return err
		}
		break
	}

	// Encrypt message to the validators
	cipher, err := client.eciesSPI.NewAsymmetricCipherFromPublicKey(client.chainPublicKey)
	if err != nil {
		client.Errorf("Failed creating new encryption scheme: [%s]", err)

		return err
	}

	msgToValidators, err := asn1.Marshal(chainCodeValidatorMessage1_2{privBytes, stateKey})
	if err != nil {
		client.Errorf("Failed preparing message to the validators: [%s]", err)

		return err
	}

	encMsgToValidators, err := cipher.Process(msgToValidators)
	if err != nil {
		client.Errorf("Failed encrypting message to the validators: [%s]", err)

		return err
	}
	tx.ToValidators = encMsgToValidators

	// Encrypt the rest of the fields

	// Init with chainccode pk
	cipher, err = client.eciesSPI.NewAsymmetricCipherFromPublicKey(ccPrivateKey.GetPublicKey())
	if err != nil {
		client.Errorf("Failed initiliazing encryption scheme: [%s]", err)

		return err
	}

	// Encrypt chaincodeID using pkC
	encryptedChaincodeID, err := cipher.Process(tx.ChaincodeID)
	if err != nil {
		client.Errorf("Failed encrypting chaincodeID: [%s]", err)

		return err
	}
	tx.ChaincodeID = encryptedChaincodeID

//.........这里部分代码省略.........
开发者ID:srderson,项目名称:fabric,代码行数:101,代码来源:client_confidentiality.go


示例9: NewECA

// NewECA sets up a new ECA.
//
func NewECA() *ECA {
	eca := &ECA{NewCA("eca", initializeECATables), nil, nil, nil}

	{
		// read or create global symmetric encryption key
		var cooked string

		raw, err := ioutil.ReadFile(eca.path + "/obc.aes")
		if err != nil {
			rand := rand.Reader
			key := make([]byte, 32) // AES-256
			rand.Read(key)
			cooked = base64.StdEncoding.EncodeToString(key)

			err = ioutil.WriteFile(eca.path+"/obc.aes", []byte(cooked), 0644)
			if err != nil {
				Panic.Panicln(err)
			}
		} else {
			cooked = string(raw)
		}

		eca.obcKey, err = base64.StdEncoding.DecodeString(cooked)
		if err != nil {
			Panic.Panicln(err)
		}
	}

	{
		// read or create global ECDSA key pair for ECIES
		var priv *ecdsa.PrivateKey
		cooked, err := ioutil.ReadFile(eca.path + "/obc.ecies")
		if err == nil {
			block, _ := pem.Decode(cooked)
			priv, err = x509.ParseECPrivateKey(block.Bytes)
			if err != nil {
				Panic.Panicln(err)
			}
		} else {
			priv, err = ecdsa.GenerateKey(primitives.GetDefaultCurve(), rand.Reader)
			if err != nil {
				Panic.Panicln(err)
			}

			raw, _ := x509.MarshalECPrivateKey(priv)
			cooked = pem.EncodeToMemory(
				&pem.Block{
					Type:  "ECDSA PRIVATE KEY",
					Bytes: raw,
				})
			err := ioutil.WriteFile(eca.path+"/obc.ecies", cooked, 0644)
			if err != nil {
				Panic.Panicln(err)
			}
		}

		eca.obcPriv = cooked
		raw, _ := x509.MarshalPKIXPublicKey(&priv.PublicKey)
		eca.obcPub = pem.EncodeToMemory(
			&pem.Block{
				Type:  "ECDSA PUBLIC KEY",
				Bytes: raw,
			})
	}

	eca.populateAffiliationGroupsTable()
	eca.populateUsersTable()
	return eca
}
开发者ID:C0rWin,项目名称:fabric,代码行数:71,代码来源:eca.go


示例10: TestSPI

func TestSPI(t *testing.T) {

	spi := NewSPI()

	ecdsaKey, err := ecdsa.GenerateKey(primitives.GetDefaultCurve(), rand.Reader)

	var a interface{}
	a = ecdsaKey

	switch t := a.(type) {
	case *ecdsa.PrivateKey:
		fmt.Printf("a2 [%s]\n", t)
		break
	case elliptic.Curve:
		fmt.Printf("a1 [%s]\n", t)
		break
	default:
		fmt.Printf("a3 [%s]\n", t)

	}

	fmt.Printf("[%s]\n", ecdsaKey)
	if err != nil {
		t.Fatal(err)
	}
	_, err = x509.MarshalECPrivateKey(ecdsaKey)
	if err != nil {
		t.Fatal(err)
	}
	fmt.Printf("[%s]\n", ecdsaKey)

	privateKey, err := spi.NewPrivateKey(nil, ecdsaKey)
	if err != nil {
		t.Fatal(err)
	}

	fmt.Printf("[%s]\n", privateKey.(*secretKeyImpl).priv)
	_, err = x509.MarshalECPrivateKey(privateKey.(*secretKeyImpl).priv)
	if err != nil {
		t.Fatal(err)
	}

	rawKey, err := spi.SerializePrivateKey(privateKey)
	if err != nil {
		t.Fatal(err)
	}

	privateKey, err = spi.DeserializePrivateKey(rawKey)
	if err != nil {
		t.Fatal(err)
	}

	// Encrypt
	cipher, err := spi.NewAsymmetricCipherFromPublicKey(privateKey.GetPublicKey())
	if err != nil {
		t.Fatal(err)
	}

	msg := []byte("Hello World!!!")
	ct, err := cipher.Process(msg)
	if err != nil {
		t.Fatal(err)
	}

	// Decrypt
	cipher, err = spi.NewAsymmetricCipherFromPrivateKey(privateKey)
	if err != nil {
		t.Fatal(err)
	}

	plain, err := cipher.Process(ct)
	if err != nil {
		t.Fatal(err)
	}

	if !reflect.DeepEqual(msg, plain) {
		t.Fatal("Decrypted different message")
	}

}
开发者ID:RicHernandez2,项目名称:fabric,代码行数:80,代码来源:spi_test.go


示例11: NewECDSAKey

// NewECDSAKey generates a new ECDSA Key
func NewECDSAKey() (*ecdsa.PrivateKey, error) {
	return ecdsa.GenerateKey(primitives.GetDefaultCurve(), rand.Reader)
}
开发者ID:hyperledger,项目名称:fabric,代码行数:4,代码来源:ecdsa.go



注:本文中的github.com/hyperledger/fabric/core/crypto/primitives.GetDefaultCurve函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang primitives.GetDefaultHash函数代码示例发布时间:2022-05-28
下一篇:
Golang primitives.ECDSASignDirect函数代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap