ecdh_test.go raw

   1  // Copyright (c) 2015-2016 The btcsuite developers
   2  // Copyright (c) 2015-2017 The Decred developers
   3  // Use of this source code is governed by an ISC
   4  // license that can be found in the LICENSE file.
   5  
   6  package secp256k1
   7  
   8  import (
   9  	"testing"
  10  
  11  	"next.orly.dev/pkg/nostr/utils"
  12  )
  13  
  14  func TestGenerateSharedSecret(t *testing.T) {
  15  	secKey1, err := GenerateSecretKey()
  16  	if err != nil {
  17  		t.Errorf("secret key generation error: %s", err)
  18  		return
  19  	}
  20  	secKey2, err := GenerateSecretKey()
  21  	if err != nil {
  22  		t.Errorf("secret key generation error: %s", err)
  23  		return
  24  	}
  25  	pubKey1 := secKey1.PubKey()
  26  	pubKey2 := secKey2.PubKey()
  27  	secret1 := GenerateSharedSecret(secKey1, pubKey2)
  28  	secret2 := GenerateSharedSecret(secKey2, pubKey1)
  29  	if !utils.FastEqual(secret1, secret2) {
  30  		t.Errorf(
  31  			"ECDH failed, secrets mismatch - first: %x, second: %x",
  32  			secret1, secret2,
  33  		)
  34  	}
  35  }
  36