github.com/s7techlab/cckit@v0.10.5/extensions/ecdh/ecdh_test.go (about) 1 package ecdh_test 2 3 import ( 4 "crypto/ecdsa" 5 "crypto/elliptic" 6 "fmt" 7 "testing" 8 9 "github.com/s7techlab/cckit/extensions/ecdh" 10 "github.com/s7techlab/cckit/identity/testdata" 11 12 . "github.com/onsi/ginkgo" 13 . "github.com/onsi/gomega" 14 ) 15 16 func TestDebug(t *testing.T) { 17 RegisterFailHandler(Fail) 18 RunSpecs(t, "ECDH suite") 19 } 20 21 // load actor certificates 22 var ( 23 pubKey1 = testdata.Certificates[0].MustCert().PublicKey.(*ecdsa.PublicKey) 24 pubKey2 = testdata.Certificates[1].MustCert().PublicKey.(*ecdsa.PublicKey) 25 pubKey3 = testdata.Certificates[2].MustCert().PublicKey.(*ecdsa.PublicKey) 26 27 privKey1 = testdata.Certificates[0].MustPKey() 28 privKey2 = testdata.Certificates[1].MustPKey() 29 privKey3 = testdata.Certificates[2].MustPKey() 30 ) 31 32 var _ = Describe(`ECDH`, func() { 33 34 It("Allow to create shared key for 2 parties", func() { 35 36 secret12, err := ecdh.GenerateSharedSecret(privKey1, pubKey2) 37 Expect(err).To(BeNil()) 38 secret21, err := ecdh.GenerateSharedSecret(privKey2, pubKey1) 39 Expect(err).To(BeNil()) 40 41 Expect(secret12).To(Equal(secret21)) 42 43 secret23, err := ecdh.GenerateSharedSecret(privKey2, pubKey3) 44 Expect(err).To(BeNil()) 45 secret32, err := ecdh.GenerateSharedSecret(privKey3, pubKey2) 46 Expect(err).To(BeNil()) 47 48 Expect(secret23).To(Equal(secret32)) 49 50 }) 51 52 It("Allow to create shared key for 3 parties", func() { 53 54 secret12, err := ecdh.GenerateSharedSecret(privKey1, pubKey2) 55 Expect(err).To(BeNil()) 56 57 x, y := elliptic.Unmarshal(pubKey1.Curve, secret12) 58 59 fmt.Println(x, y) 60 //if x == nil || y == nil { 61 // return key, false 62 //} 63 //key = &ellipticPublicKey{ 64 // Curve: e.curve, 65 // X: x, 66 // Y: y, 67 //} 68 69 }) 70 71 })