package e2e

// legacyGen_test.go contains the code for generating e2e relationships
// for the pre-April 2022 client. This is left here, commented for
// posterity and documentation purposes. This code was used to generate
// the legacyDataEkv directory. This data is tested in TestRatchet_unmarshalOld()

//
//func GenerateLegacyData() {
//	prng := rand.New(rand.NewSource(42))
//	grp := cyclic.NewGroup(large.NewInt(107), large.NewInt(2))
//	privKey := grp.NewInt(57)
//	fs, err := ekv.NewFilestore("/home/josh/src/clientRelease/storage/e2e/legacyEkv", "hello")
//	if err != nil {
//		panic(
//			"Failed to create storage session")
//	}
//
//	kv := versioned.NewKV(fs)
//	//prng := rand.New(rand.NewSource(42))
//	myId := id.NewIdFromString("me", id.User, t)
//	s, err := NewStore(grp, kv, privKey, myId, prng)
//	if err != nil {
//		panic("NewStore() produced an error: " + err.Error())
//	}
//
//	partnerIds := make([]*id.ID, 0)
//	for i := 0; i < 5; i++ {
//		// Add 1 here cause 0 case: 0 is not within the group
//		partnerPubKey := diffieHellman.GeneratePublicKey(s.grp.NewInt(int64(i+1)), s.grp)
//
//		partnerID := id.NewIdFromUInt(uint64(i), id.User, t)
//		partnerIds = append(partnerIds, partnerID)
//		p := params.GetDefaultE2ESessionParams()
//		// NOTE: e2e store doesn't contain a private SIDH key, that's
//		// because they're completely ephemeral as part of the
//		// initiation of the connection.
//		_, pubSIDHKey := genSidhKeys(prng, sidh.KeyVariantSidhA)
//		privSIDHKey, _ := genSidhKeys(prng, sidh.KeyVariantSidhB)
//
//		err := s.AddPartner(partnerID, partnerPubKey, s.dhPrivateKey, pubSIDHKey,
//			privSIDHKey, p, p)
//		if err != nil {
//			panic("AddPartner returned an error: %v", err)
//		}
//	}
//
//}
//func genSidhKeys(rng io.Reader, variant sidh.KeyVariant) (*sidh.PrivateKey, *sidh.PublicKey) {
//	sidHPrivKey := util.NewSIDHPrivateKey(variant)
//	sidHPubKey := util.NewSIDHPublicKey(variant)
//
//	if err := sidHPrivKey.Generate(rng); err != nil {
//		panic("failure to generate SidH A private key")
//	}
//	sidHPrivKey.GeneratePublicKey(sidHPubKey)
//
//	return sidHPrivKey, sidHPubKey
//}