github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/engine/pgp_keygen_test.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  package engine
     5  
     6  import (
     7  	"github.com/keybase/client/go/libkb"
     8  	keybase1 "github.com/keybase/client/go/protocol/keybase1"
     9  	"testing"
    10  )
    11  
    12  func TestPGPKeyGenPush(t *testing.T) {
    13  	tc := SetupEngineTest(t, "pgpkeygen")
    14  	defer tc.Cleanup()
    15  
    16  	u := CreateAndSignupFakeUser(tc, "pgp")
    17  	pgpUI := &TestPgpUI{ShouldPush: true}
    18  	uis := libkb.UIs{
    19  		LogUI:    tc.G.UI.GetLogUI(),
    20  		SecretUI: u.NewSecretUI(),
    21  		PgpUI:    pgpUI,
    22  	}
    23  	arg := keybase1.PGPKeyGenDefaultArg{
    24  		CreateUids: keybase1.PGPCreateUids{
    25  			UseDefault: true,
    26  			Ids: []keybase1.PGPIdentity{
    27  				{Username: u.Username, Email: u.Email},
    28  			},
    29  		},
    30  	}
    31  	eng := NewPGPKeyGen(tc.G, arg)
    32  	eng.genArg = &libkb.PGPGenArg{
    33  		PrimaryBits: 768,
    34  		SubkeyBits:  768,
    35  	}
    36  	m := NewMetaContextForTest(tc).WithUIs(uis)
    37  	if err := RunEngine2(m, eng); err != nil {
    38  		t.Fatal(err)
    39  	}
    40  
    41  	xarg := keybase1.PGPExportArg{
    42  		Options: keybase1.PGPQuery{
    43  			Secret: true,
    44  			Query:  pgpUI.Generated.Key.Fingerprint,
    45  		},
    46  	}
    47  	xe := NewPGPKeyExportEngine(tc.G, xarg)
    48  	if err := RunEngine2(m, xe); err != nil {
    49  		t.Fatal(err)
    50  	}
    51  	if len(xe.Results()) != 1 {
    52  		t.Errorf("result keys: %d, expected 1", len(xe.Results()))
    53  	}
    54  }
    55  
    56  func TestPGPKeyGenNoPush(t *testing.T) {
    57  	tc := SetupEngineTest(t, "pgpkeygen")
    58  	defer tc.Cleanup()
    59  
    60  	u := CreateAndSignupFakeUser(tc, "pgp")
    61  	pgpUI := &TestPgpUI{ShouldPush: false}
    62  	uis := libkb.UIs{
    63  		LogUI:    tc.G.UI.GetLogUI(),
    64  		SecretUI: u.NewSecretUI(),
    65  		PgpUI:    pgpUI,
    66  	}
    67  	arg := keybase1.PGPKeyGenDefaultArg{
    68  		CreateUids: keybase1.PGPCreateUids{
    69  			UseDefault: true,
    70  			Ids: []keybase1.PGPIdentity{
    71  				{Username: u.Username, Email: u.Email},
    72  			},
    73  		},
    74  	}
    75  	eng := NewPGPKeyGen(tc.G, arg)
    76  	eng.genArg = &libkb.PGPGenArg{
    77  		PrimaryBits: 768,
    78  		SubkeyBits:  768,
    79  	}
    80  	m := NewMetaContextForTest(tc).WithUIs(uis)
    81  	if err := RunEngine2(m, eng); err != nil {
    82  		t.Fatal(err)
    83  	}
    84  
    85  	xarg := keybase1.PGPExportArg{
    86  		Options: keybase1.PGPQuery{
    87  			Secret: true,
    88  			Query:  pgpUI.Generated.Key.Fingerprint,
    89  		},
    90  	}
    91  	xe := NewPGPKeyExportEngine(tc.G, xarg)
    92  	if err := RunEngine2(m, xe); err != nil {
    93  		t.Fatal(err)
    94  	}
    95  	if len(xe.Results()) != 1 {
    96  		t.Errorf("result keys: %d, expected 1", len(xe.Results()))
    97  	}
    98  }