github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/blindtree/defaults.go (about)

     1  package blindtree
     2  
     3  import (
     4  	"github.com/keybase/client/go/merkletree2"
     5  )
     6  
     7  // Blind tree defaults. Should not be changed without updating the clients first!
     8  const encodingType = merkletree2.EncodingTypeBlindedSHA512_256v1
     9  const useBlindedValueHashes bool = true
    10  const logChildrenPerNode uint8 = 1
    11  const maxValuesPerLeaf = 1
    12  const keysByteLength = 16
    13  
    14  func GetCurrentBlindTreeConfig() (cfg merkletree2.Config) {
    15  	valueConstructor := func() interface{} { return BlindMerkleValue{} }
    16  
    17  	cfg, err := merkletree2.NewConfig(
    18  		encodingType.GetEncoder(),
    19  		useBlindedValueHashes,
    20  		logChildrenPerNode,
    21  		maxValuesPerLeaf,
    22  		keysByteLength,
    23  		valueConstructor)
    24  	if err != nil {
    25  		panic(err)
    26  	}
    27  	return cfg
    28  }
    29  
    30  // This config uses the non thread safe encoder.
    31  func GetCurrentBlindTreeConfigUnsafe() (cfg merkletree2.Config) {
    32  	valueConstructor := func() interface{} { return BlindMerkleValue{} }
    33  
    34  	cfg, err := merkletree2.NewConfig(
    35  		encodingType.GetUnsafeEncoder(),
    36  		useBlindedValueHashes,
    37  		logChildrenPerNode,
    38  		maxValuesPerLeaf,
    39  		keysByteLength,
    40  		valueConstructor)
    41  	if err != nil {
    42  		panic(err)
    43  	}
    44  	return cfg
    45  }