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

     1  // Copyright 2015 Keybase, Inc. All rights reserved. Use of
     2  // this source code is governed by the included BSD license.
     3  //
     4  //go:build !production
     5  // +build !production
     6  
     7  package saltpackkeystest
     8  
     9  import (
    10  	"encoding/hex"
    11  	"testing"
    12  
    13  	"github.com/keybase/saltpack"
    14  )
    15  
    16  // MockPseudonymResolver resolver returns nil for all the pseudonyms requested unless otherwise instructed
    17  // by the AddPseudonym method. It does not make any network requests to the server.
    18  type MockPseudonymResolver struct {
    19  	T       *testing.T
    20  	pnymMap map[[32]byte](*saltpack.SymmetricKey)
    21  }
    22  
    23  var _ saltpack.SymmetricKeyResolver = (*MockPseudonymResolver)(nil)
    24  
    25  func (r *MockPseudonymResolver) ResolveKeys(identifiers [][]byte) ([]*saltpack.SymmetricKey, error) {
    26  	var pnyms []string
    27  	var keys []*saltpack.SymmetricKey
    28  
    29  	for _, psBytes := range identifiers {
    30  		pnyms = append(pnyms, hex.EncodeToString(psBytes))
    31  		var pnym [32]byte
    32  		copy(pnym[:], psBytes)
    33  		if key, found := r.pnymMap[pnym]; found {
    34  			keys = append(keys, key)
    35  		} else {
    36  			keys = append(keys, nil)
    37  		}
    38  	}
    39  	r.T.Logf("MockPseudonymResolver called on input: %+v", pnyms)
    40  	return keys, nil
    41  }
    42  
    43  func (r *MockPseudonymResolver) AddPseudonym(pnym [32]byte, key *saltpack.SymmetricKey) {
    44  	r.T.Logf("MockPseudonymResolver: adding pnym %s, key %s", hex.EncodeToString(pnym[:]), hex.EncodeToString(key[:]))
    45  	r.pnymMap[pnym] = key
    46  }
    47  
    48  func NewMockPseudonymResolver(t *testing.T) saltpack.SymmetricKeyResolver {
    49  	return &MockPseudonymResolver{
    50  		T:       t,
    51  		pnymMap: make(map[[32]byte](*saltpack.SymmetricKey)),
    52  	}
    53  }