本文整理汇总了Golang中github.com/keybase/client/go/libkb.NewBufferCloser函数的典型用法代码示例。如果您正苦于以下问题:Golang NewBufferCloser函数的具体用法?Golang NewBufferCloser怎么用?Golang NewBufferCloser使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewBufferCloser函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestPGPDecryptSignedOther
// TestPGPDecryptSignedOther tests that a user who didn't sign the
// message can verify the signature.
func TestPGPDecryptSignedOther(t *testing.T) {
tcRecipient := SetupEngineTest(t, "PGPDecrypt - Recipient")
defer tcRecipient.Cleanup()
recipient := createFakeUserWithPGPSibkey(tcRecipient)
Logout(tcRecipient)
tcSigner := SetupEngineTest(t, "PGPDecrypt - Signer")
defer tcSigner.Cleanup()
signer := createFakeUserWithPGPSibkey(tcSigner)
// encrypt a message
msg := "We pride ourselves on being meticulous; no issue is too small."
ctx := decengctx(signer, tcSigner)
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Recips: []string{recipient.Username},
Source: strings.NewReader(msg),
Sink: sink,
BinaryOutput: true,
}
enc := NewPGPEncrypt(arg, tcSigner.G)
if err := RunEngine(enc, ctx); err != nil {
t.Fatal(err)
}
out := sink.Bytes()
t.Logf("encrypted data: %x", out)
// signer logs out, recipient logs in:
t.Logf("signer (%q) logging out", signer.Username)
Logout(tcSigner)
libkb.G = tcRecipient.G
// G = libkb.G
t.Logf("recipient (%q) logging in", recipient.Username)
recipient.LoginOrBust(tcRecipient)
rtrackUI := &FakeIdentifyUI{}
ctx = &Context{
IdentifyUI: rtrackUI,
SecretUI: recipient.NewSecretUI(),
LogUI: tcRecipient.G.UI.GetLogUI(),
PgpUI: &TestPgpUI{},
}
// decrypt it
decoded := libkb.NewBufferCloser()
decarg := &PGPDecryptArg{
Source: bytes.NewReader(out),
Sink: decoded,
AssertSigned: true,
}
dec := NewPGPDecrypt(decarg, tcRecipient.G)
if err := RunEngine(dec, ctx); err != nil {
t.Fatal(err)
}
decmsg := string(decoded.Bytes())
if decmsg != msg {
t.Errorf("decoded: %q, expected: %q", decmsg, msg)
}
}
开发者ID:qbit,项目名称:client,代码行数:62,代码来源:pgp_decrypt_test.go
示例2: TestPGPDecryptArmored
func TestPGPDecryptArmored(t *testing.T) {
tc := SetupEngineTest(t, "PGPDecrypt")
defer tc.Cleanup()
fu := createFakeUserWithPGPOnly(t, tc)
// encrypt a message
msg := "10 days in Japan"
ctx := decengctx(fu, tc)
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Source: strings.NewReader(msg),
Sink: sink,
NoSign: true,
}
enc := NewPGPEncrypt(arg, tc.G)
if err := RunEngine(enc, ctx); err != nil {
t.Fatal(err)
}
out := sink.Bytes()
t.Logf("encrypted data: %x", out)
// decrypt it
decoded := libkb.NewBufferCloser()
decarg := &PGPDecryptArg{
Source: bytes.NewReader(out),
Sink: decoded,
}
dec := NewPGPDecrypt(decarg, tc.G)
if err := RunEngine(dec, ctx); err != nil {
t.Fatal(err)
}
decmsg := string(decoded.Bytes())
if decmsg != msg {
t.Errorf("decoded: %q, expected: %q", decmsg, msg)
}
// A saltpack message
saltpack := `BEGIN KEYBASE SALTPACK ENCRYPTED MESSAGE.
ZUHRHckf9VJ6ich bKthcf8yieGqdWj H4gqRvnQEBYi4Lw JzZL5NnUd2ssiZ3 hReptn2rUJuGcna uAkp7yQGAaxVQyc oM2o7JykpRwsGbM fmF4r2Mj1aCAKd6 U316QFRCxkC4Uik JszTub0Mt1a1IRi wQNIl3ru791WSMK JRXkD0biElgMSIf Qk9B0j1vRHeLB11 Ig9qX7TBMzg9InW tHfZp0GjYEJWCvZ i0h3SG99wTPL3Ov PSOjc2oGRqI2bya XaGdao8vmfYk8jd auqe5QBgA2RaO7I WYZGyHwsWNg3PSX eEcUtccZeD7ryBP MMDvFZUDUia1Njf ELaaKo932JWKdLg zONmMEinFizgGEg 7MrB4kIjeY3O4Od GEjKV6okfzdmYOP rZCsNzFILna2K1h D53RmTDkoddt81Y mwPFWwaeCA9YR9S EZcu8kWlaFjjDRX SG7MCuwtS3PuUXr EaCfe1ib65Nrq3s IUxGJ7H6JRidavn Ql7Bo9qbZGqkglf 0g1caODxGe4mQfZ ixH7my73DAKw5aL idukKTwb0qPVlvD 2vqskVSukRNra5i 1t1PadrLZSgaJqb WtSVmbgiWm40P1S WlR8nq2I95RIZSx LP3JEvHqBNAb9Ci rzkkSaOBk5FawpE yCVbUDk556V0e7F z8YSYPFqzwf14Yo JEztr4noRMxvME2 OBTt16BAJF4K1NA pTtFpwRbubTggxb 74abisSK1DgPd30 UgdY75zTUKd57pk CHTu2BwPHFGjwgf XxJMTNpYRQiz6uZ lIAmcTKhGoKBy97 7S82DvT1tB0cGjn M5JnyMJkzj2WaVf MFkAonXbkYNOk2n olE7RldZhcyy4Xd edu1Mke8AevVaAc lat6mso7hS2XAuW ZCcrWakNFGPPqkW 40YMZMHqL1mbIIS oooC5lSP2dd2c04 j9yjhpsYjs2izOA HRhQslExQDU6Uio WEJBnQDpMbhQG1y E9jPqsSgmUrfRgD nEuLPYpRLm6UJgW TZFga6U0khClKRX DdTWaLVGrmY8xdB GNy2Dd4HStxQ4PF vwTIyDUee5loag1 ePdbLqPMdkh19zR PcBFK4gtKCdhzIu ea2Ncg69SqseUBi wp45MaNEGlIh9Y7 sU85K0nKEMK5if3 7HOGDDVCL7pwmNj 9A6DKk8MrwpPTeB 2B3uqQpHsKIdPJx qD7S2IJahokxoiY 5UPvodqZY8JRljz In7rV6I5LUyh5SM tSL4t0Z2VfrMDZH En5QqKvVJykQU9S ELH1U2Hxh7ANzCK v2R3xrf102D1zaG 3sO6yLwzpZH2Rq0 q3h9GbWIEndPZHA IsPJC2MFfN0sOwe e6nEuqR2NlsDwBk hMWLszNY7iOICmE RvwFZXFqTwbRlxA qBoAPZYJyPFdKpV MsSRHrFUIwYTE6S ZPQ9bRmb2B1hAu9 rkECh80CmFO04Fc rn1KX392TtgIYu1 PN1LGcrAYdD6UC1 O9Vx2fuBiTIqmo9 XbPsWdRxmX57BjS EZPTZ9wGaxLZVqB cmsDn1mU1Uzbesx 2pXT0mVO7A72mkw wBdlD7QDUeN8Na7 j8W9tUIWUAbAePO 2Z9OSU0M1KIRSuE ePOZBlNonU1dUCz KQWlw.
END KEYBASE SALTPACK ENCRYPTED MESSAGE.`
decoded = libkb.NewBufferCloser()
decarg = &PGPDecryptArg{
Source: strings.NewReader(saltpack),
Sink: decoded,
}
dec = NewPGPDecrypt(decarg, tc.G)
err := RunEngine(dec, ctx)
if wse, ok := err.(libkb.WrongCryptoFormatError); !ok {
t.Fatalf("Wanted a WrongCryptoFormat error, but got %T (%v)", err, err)
} else if wse.Wanted != libkb.CryptoMessageFormatPGP ||
wse.Received != libkb.CryptoMessageFormatSaltpack ||
wse.Operation != "decrypt" {
t.Fatalf("Bad error: %v", wse)
}
}
开发者ID:mark-adams,项目名称:client,代码行数:57,代码来源:pgp_decrypt_test.go
示例3: TestPGPDecryptLong
func TestPGPDecryptLong(t *testing.T) {
tc := SetupEngineTest(t, "PGPDecrypt")
defer tc.Cleanup()
fu := createFakeUserWithPGPSibkey(tc)
// encrypt a message
msg := make([]byte, 1024*1024)
if _, err := rand.Read(msg); err != nil {
t.Fatal(err)
}
sink := libkb.NewBufferCloser()
ctx := decengctx(fu, tc)
arg := &PGPEncryptArg{
Source: bytes.NewReader(msg),
Sink: sink,
NoSign: true,
BinaryOutput: true,
}
enc := NewPGPEncrypt(arg, tc.G)
if err := RunEngine(enc, ctx); err != nil {
t.Fatal(err)
}
out := sink.Bytes()
// decrypt it
decoded := libkb.NewBufferCloser()
decarg := &PGPDecryptArg{
Source: bytes.NewReader(out),
Sink: decoded,
}
dec := NewPGPDecrypt(decarg, tc.G)
if err := RunEngine(dec, ctx); err != nil {
t.Fatal(err)
}
decmsg := decoded.Bytes()
if len(decmsg) != len(msg) {
t.Fatalf("decoded msg size: %d, expected %d", len(decmsg), len(msg))
}
for i, b := range msg {
if decmsg[i] != b {
t.Errorf("decode msg differs at byte %d: %x, expected %x", i, decmsg[i], b)
}
}
owner := dec.Owner()
if owner == nil {
t.Errorf("owner is nil")
}
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:52,代码来源:pgp_decrypt_test.go
示例4: TestPGPEncryptSelfTwice
// encrypt for self via NoSelf: false and username in recipients
func TestPGPEncryptSelfTwice(t *testing.T) {
tc := SetupEngineTest(t, "PGPEncrypt")
defer tc.Cleanup()
u := createFakeUserWithPGPSibkey(tc)
trackUI := &FakeIdentifyUI{
Proofs: make(map[string]string),
}
ctx := &Context{IdentifyUI: trackUI, SecretUI: u.NewSecretUI()}
msg := "encrypt for self only once"
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Recips: []string{u.Username},
Source: strings.NewReader(msg),
Sink: sink,
NoSign: true,
TrackOptions: keybase1.TrackOptions{BypassConfirm: true},
}
eng := NewPGPEncrypt(arg, tc.G)
err := RunEngine(eng, ctx)
if err != nil {
t.Fatal(err)
}
out := sink.Bytes()
// decrypt it
decoded := libkb.NewBufferCloser()
decarg := &PGPDecryptArg{
Source: bytes.NewReader(out),
Sink: decoded,
}
dec := NewPGPDecrypt(decarg, tc.G)
ctx.LogUI = tc.G.UI.GetLogUI()
ctx.PgpUI = &TestPgpUI{}
if err := RunEngine(dec, ctx); err != nil {
t.Fatal(err)
}
decmsg := string(decoded.Bytes())
if decmsg != msg {
t.Errorf("decoded: %q, expected: %q", decmsg, msg)
}
recips := dec.signStatus.RecipientKeyIDs
if len(recips) != 1 {
t.Logf("recipient key ids: %v", recips)
t.Errorf("num recipient key ids: %d, expected 1", len(recips))
}
}
开发者ID:mark-adams,项目名称:client,代码行数:51,代码来源:pgp_encrypt_test.go
示例5: TestPGPEncryptSelfNoKey
func TestPGPEncryptSelfNoKey(t *testing.T) {
tc := SetupEngineTest(t, "PGPEncrypt")
defer tc.Cleanup()
u := CreateAndSignupFakeUser(tc, "login")
trackUI := &FakeIdentifyUI{
Proofs: make(map[string]string),
}
ctx := &Context{IdentifyUI: trackUI, SecretUI: u.NewSecretUI()}
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Recips: []string{"t_alice", "t_bob+twitter:kbtester1", "t_charlie+twitter:tacovontaco"},
Source: strings.NewReader("track and encrypt, track and encrypt"),
Sink: sink,
NoSign: true,
TrackOptions: keybase1.TrackOptions{BypassConfirm: true},
}
eng := NewPGPEncrypt(arg, tc.G)
err := RunEngine(eng, ctx)
if err == nil {
t.Fatal("no error encrypting for self without pgp key")
}
if _, ok := err.(libkb.NoKeyError); !ok {
t.Fatalf("expected error type libkb.NoKeyError, got %T (%s)", err, err)
}
}
开发者ID:mark-adams,项目名称:client,代码行数:28,代码来源:pgp_encrypt_test.go
示例6: TestPGPEncryptNoPGPNaClOnly
func TestPGPEncryptNoPGPNaClOnly(t *testing.T) {
tc := SetupEngineTest(t, "TestPGPEncryptNoPGPNaClOnly")
defer tc.Cleanup()
u1 := CreateAndSignupFakeUser(tc, "nalcp")
Logout(tc)
u2 := createFakeUserWithPGPSibkey(tc)
trackUI := &FakeIdentifyUI{
Proofs: make(map[string]string),
}
ctx := &Context{IdentifyUI: trackUI, SecretUI: u2.NewSecretUI()}
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Recips: []string{u1.Username},
Source: strings.NewReader("track and encrypt, track and encrypt"),
Sink: sink,
NoSign: true,
TrackOptions: keybase1.TrackOptions{BypassConfirm: true},
}
eng := NewPGPEncrypt(arg, tc.G)
err := RunEngine(eng, ctx)
if perr, ok := err.(libkb.NoPGPEncryptionKeyError); !ok {
t.Fatalf("Got wrong error type: %T %v", err, err)
} else if !perr.HasDeviceKey {
t.Fatalf("Should have a PGP key")
} else if perr.User != u1.Username {
t.Fatalf("Wrong username")
}
}
开发者ID:mark-adams,项目名称:client,代码行数:31,代码来源:pgp_encrypt_test.go
示例7: TestPGPEncrypt
func TestPGPEncrypt(t *testing.T) {
tc := SetupEngineTest(t, "PGPEncrypt")
defer tc.Cleanup()
u := createFakeUserWithPGPSibkey(tc)
trackUI := &FakeIdentifyUI{
Proofs: make(map[string]string),
}
ctx := &Context{IdentifyUI: trackUI, SecretUI: u.NewSecretUI()}
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Recips: []string{"t_alice", "[email protected]", "[email protected]"},
Source: strings.NewReader("track and encrypt, track and encrypt"),
Sink: sink,
NoSign: true,
TrackOptions: keybase1.TrackOptions{BypassConfirm: true},
}
eng := NewPGPEncrypt(arg, tc.G)
if err := RunEngine(eng, ctx); err != nil {
t.Fatal(err)
}
out := sink.Bytes()
if len(out) == 0 {
t.Fatal("no output")
}
}
开发者ID:mark-adams,项目名称:client,代码行数:29,代码来源:pgp_encrypt_test.go
示例8: TestSaltpackEncryptSelfNoKey
func TestSaltpackEncryptSelfNoKey(t *testing.T) {
tc := SetupEngineTest(t, "SaltpackEncrypt")
defer tc.Cleanup()
_, passphrase := createFakeUserWithNoKeys(tc)
trackUI := &FakeIdentifyUI{
Proofs: make(map[string]string),
}
ctx := &Context{IdentifyUI: trackUI, SecretUI: &libkb.TestSecretUI{Passphrase: passphrase}}
sink := libkb.NewBufferCloser()
arg := &SaltpackEncryptArg{
Opts: keybase1.SaltpackEncryptOptions{
Recipients: []string{"[email protected]", "t_george", "[email protected]"},
},
Source: strings.NewReader("track and encrypt, track and encrypt"),
Sink: sink,
}
eng := NewSaltpackEncrypt(arg, tc.G)
err := RunEngine(eng, ctx)
if _, ok := err.(libkb.NoKeyError); !ok {
t.Fatalf("expected error type libkb.NoKeyError, got %T (%s)", err, err)
}
}
开发者ID:qbit,项目名称:client,代码行数:25,代码来源:saltpack_encrypt_test.go
示例9: TestSaltpackEncryptHideRecipients
func TestSaltpackEncryptHideRecipients(t *testing.T) {
tc := SetupEngineTest(t, "SaltpackEncrypt")
defer tc.Cleanup()
u1 := CreateAndSignupFakeUser(tc, "nalcp")
u2 := CreateAndSignupFakeUser(tc, "nalcp")
u3 := CreateAndSignupFakeUser(tc, "nalcp")
trackUI := &FakeIdentifyUI{
Proofs: make(map[string]string),
}
ctx := &Context{IdentifyUI: trackUI, SecretUI: u3.NewSecretUI()}
run := func(Recips []string) {
sink := libkb.NewBufferCloser()
arg := &SaltpackEncryptArg{
Opts: keybase1.SaltpackEncryptOptions{
Recipients: Recips,
HideRecipients: true,
Binary: true,
},
Source: strings.NewReader("id2 and encrypt, id2 and encrypt"),
Sink: sink,
}
eng := NewSaltpackEncrypt(arg, tc.G)
if err := RunEngine(eng, ctx); err != nil {
t.Fatal(err)
}
out := sink.Bytes()
if len(out) == 0 {
t.Fatal("no output")
}
var header saltpack.EncryptionHeader
dec := codec.NewDecoderBytes(out, &codec.MsgpackHandle{WriteExt: true})
var b []byte
if err := dec.Decode(&b); err != nil {
t.Fatal(err)
}
dec = codec.NewDecoderBytes(b, &codec.MsgpackHandle{WriteExt: true})
if err := dec.Decode(&header); err != nil {
t.Fatal(err)
}
for _, receiver := range header.Receivers {
if receiver.ReceiverKID != nil {
t.Fatal("receiver KID included in anonymous saltpack header")
}
}
}
run([]string{u1.Username, u2.Username})
// If we add ourselves, we should be smart and not error out
// (We are u3 in this case)
run([]string{u1.Username, u2.Username, u3.Username})
}
开发者ID:qbit,项目名称:client,代码行数:59,代码来源:saltpack_encrypt_test.go
示例10: TestSaltpackEncryptBinary
func TestSaltpackEncryptBinary(t *testing.T) {
tc := SetupEngineTest(t, "SaltpackEncryptBinary")
defer tc.Cleanup()
fu := CreateAndSignupFakeUser(tc, "enc")
// encrypt a message
msg := "10 days in Japan"
sink := libkb.NewBufferCloser()
ctx := &Context{
IdentifyUI: &FakeIdentifyUI{},
SecretUI: fu.NewSecretUI(),
LogUI: tc.G.UI.GetLogUI(),
SaltpackUI: &fakeSaltpackUI{},
}
// Should encrypt for self, too.
arg := &SaltpackEncryptArg{
Source: strings.NewReader(msg),
Sink: sink,
Opts: keybase1.SaltpackEncryptOptions{
Binary: true,
},
}
enc := NewSaltpackEncrypt(arg, tc.G)
if err := RunEngine(enc, ctx); err != nil {
t.Fatal(err)
}
out := sink.String()
// decrypt it
decoded := libkb.NewBufferCloser()
decarg := &SaltpackDecryptArg{
Source: strings.NewReader(out),
Sink: decoded,
}
dec := NewSaltpackDecrypt(decarg, tc.G)
if err := RunEngine(dec, ctx); err != nil {
t.Fatal(err)
}
decmsg := decoded.String()
if decmsg != msg {
t.Errorf("decoded: %s, expected: %s", decmsg, msg)
}
}
开发者ID:qbit,项目名称:client,代码行数:43,代码来源:saltpack_encrypt_test.go
示例11: TestPGPDecrypt
func TestPGPDecrypt(t *testing.T) {
tc := SetupEngineTest(t, "PGPDecrypt")
defer tc.Cleanup()
fu := createFakeUserWithPGPOnly(t, tc)
// encrypt a message
msg := "10 days in Japan"
sink := libkb.NewBufferCloser()
ctx := decengctx(fu, tc)
arg := &PGPEncryptArg{
Source: strings.NewReader(msg),
Sink: sink,
NoSign: true,
BinaryOutput: true,
}
enc := NewPGPEncrypt(arg, tc.G)
if err := RunEngine(enc, ctx); err != nil {
t.Fatal(err)
}
out := sink.Bytes()
t.Logf("encrypted data: %x", out)
// decrypt it
decoded := libkb.NewBufferCloser()
decarg := &PGPDecryptArg{
Source: bytes.NewReader(out),
Sink: decoded,
}
dec := NewPGPDecrypt(decarg, tc.G)
if err := RunEngine(dec, ctx); err != nil {
t.Fatal(err)
}
decmsg := string(decoded.Bytes())
if decmsg != msg {
t.Errorf("decoded: %q, expected: %q", decmsg, msg)
}
owner := dec.Owner()
if owner == nil {
t.Errorf("owner is nil")
}
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:43,代码来源:pgp_decrypt_test.go
示例12: TestSaltpackDecryptWithPaperKey
func TestSaltpackDecryptWithPaperKey(t *testing.T) {
tc := SetupEngineTest(t, "SaltpackDecrypt")
defer tc.Cleanup()
// We don't log in as a test user here. This flow should work even if
// you're totally logged out.
msg := `BEGIN KEYBASE SALTPACK ENCRYPTED MESSAGE. kiPgBwdlv6bV9N8
dSkCbjKrku4NADt gV8qC1k8zRA0Bi0 6KvGQoMyf99b2id uGZ3EDTqb5nZVPT
vhMiB49BOHavdzN mySkmzwlSWDsuQA z9RIPfrIX9IJCfi yqlaD1HOqK1lilP
tDrign5LrAB8zLz 4NwPFBwpQJWW8sO N9Jk6yzf6QvdPav GN9SqL6YX7XEbJc
PLrDD7LCj7fHObD O3pTQSLjuUKqAqa 3LDiQEVEDUZzYLy TvKyMJ2U8gCuhcU
SeqDClUNAPKqEEM MRgyTcw0LSwK4A5 YyZhDM065PA5SHb 6ZFPGYnv81HOibR
FHHv5lYEqPqPAZa ETIXLblnxI61F2q 6cH3w60bbxFuQB2 fwLZQSUS4ZzyVSw
UN3OKZMr79vqr6S ap3vMMqGiWm3blG ptjZEmFXI5dQqZG w9AO0Djmy2fWnCB
Z42e7BZteGaRhz8 zVmNLdOvtWiJkRF FUo2KvUgBsk9ecJ 3iZUOhYbdqja2Xx
osdOqu6OUS9V4XC H9vRylZJShvVg2X NLaeeHZ6AHdxkxO NgrG1NqHeIubq8p
0VaDq1iKk78Qj27 4q26yqnt5E9sgnN xJ850oP5DeKWrN3 yaif8ouprlETzY3
CLmDsAN5vVCgVga gx1q3YEjKUmJqD2 EsY5KBKogE1YjvQ eVaoqX5qiKtS6o0
oGE70tbveveK0kV SErmRsOSFBieaCq JzW75TXRCHpLvVB 1ZB8Wih6cyvw1yx
pK5RJNfPOF6lzKm i28FT9EoCw7uvsB kBG2EfA9YRkhXKh RoqAGrkdX3ziGy8
j5eOK91eyIcl7f7 SfUFLzETW5ULZfm 7Z9BIeOJogk7a1B 7IUJQiYpLyG3xAF
p3nmeSIalwfIzhV opNxUB7ltUOn3PX t9abJAZkUodMURG zXw0dKHQKtWXce6
y8jHbaU0zLwxvhO W3bxHNGoQ10t7Gq hSPu7SYLYyD926w 8nv5FqiUtTf7eJq
Ay1c2FAYMPkB4ay 6lB0wxtpNCGt8MO RtrC1Da3aj7rLTL fFNz2kxb78hT2Tu
QNiHyBL. END KEYBASE SALTPACK ENCRYPTED MESSAGE.`
paperkey := "fitness weasel session truly among connect explain found measure smile ask ball shoulder"
// decrypt it
decoded := libkb.NewBufferCloser()
decarg := &SaltpackDecryptArg{
Source: strings.NewReader(msg),
Sink: decoded,
Opts: keybase1.SaltpackDecryptOptions{
UsePaperKey: true,
},
}
dec := NewSaltpackDecrypt(decarg, tc.G)
ctx := &Context{
IdentifyUI: &FakeIdentifyUI{},
// Here's where the paper key goes in!
SecretUI: &libkb.TestSecretUI{Passphrase: paperkey},
LogUI: tc.G.UI.GetLogUI(),
SaltpackUI: &fakeSaltpackUI{},
}
if err := RunEngine(dec, ctx); err != nil {
t.Fatal(err)
}
decmsg := decoded.String()
expected := "message for paper key"
if decmsg != expected {
t.Errorf("decoded: %s, expected: %s", decmsg, expected)
}
}
开发者ID:qbit,项目名称:client,代码行数:55,代码来源:saltpack_decrypt_test.go
示例13: doDecrypt
func (p *pgpPair) doDecrypt(msg string, arg *PGPDecryptArg) (int, int) {
ctx := decengctx(p.recipient, p.tcR)
arg.Source = strings.NewReader(msg)
arg.Sink = libkb.NewBufferCloser()
dec := NewPGPDecrypt(arg, p.tcR.G)
if err := RunEngine(dec, ctx); err != nil {
debug.PrintStack()
p.t.Fatal(err)
}
return p.idc(ctx), p.sigc(ctx)
}
开发者ID:jacobhaven,项目名称:client,代码行数:11,代码来源:pgp_test.go
示例14: decryptSelf
func (p *pgpPair) decryptSelf(msg string) (int, int) {
ctx := decengctx(p.sender, p.tcS)
arg := &PGPDecryptArg{
Source: strings.NewReader(msg),
Sink: libkb.NewBufferCloser(),
}
dec := NewPGPDecrypt(arg, p.tcS.G)
if err := RunEngine(dec, ctx); err != nil {
p.t.Fatal(err)
}
return p.idc(ctx), p.sigc(ctx)
}
开发者ID:jacobhaven,项目名称:client,代码行数:12,代码来源:pgp_test.go
示例15: signEnc
func signEnc(ctx *Context, tc libkb.TestContext, msg string) string {
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Sink: sink,
Source: strings.NewReader(msg),
}
eng := NewPGPEncrypt(arg, tc.G)
if err := RunEngine(eng, ctx); err != nil {
tc.T.Fatal(err)
}
return sink.String()
}
开发者ID:qbit,项目名称:client,代码行数:12,代码来源:pgp_verify_test.go
示例16: sign
func sign(ctx *Context, tc libkb.TestContext, msg string, mode keybase1.SignMode) string {
sink := libkb.NewBufferCloser()
arg := &PGPSignArg{
Sink: sink,
Source: ioutil.NopCloser(strings.NewReader(msg)),
Opts: keybase1.PGPSignOptions{Mode: keybase1.SignMode(mode)},
}
eng := NewPGPSignEngine(arg, tc.G)
if err := RunEngine(eng, ctx); err != nil {
tc.T.Fatal(err)
}
return sink.String()
}
开发者ID:mattcurrycom,项目名称:client,代码行数:13,代码来源:pgp_verify_test.go
示例17: TestPGPDecryptSignedSelf
// TestPGPDecryptSignedSelf tests that the user who signed the
// message can decrypt it.
func TestPGPDecryptSignedSelf(t *testing.T) {
tc := SetupEngineTest(t, "PGPDecrypt")
defer tc.Cleanup()
fu := createFakeUserWithPGPOnly(t, tc)
// encrypt a message
msg := "We pride ourselves on being meticulous; no issue is too small."
ctx := decengctx(fu, tc)
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Source: strings.NewReader(msg),
Sink: sink,
BinaryOutput: true,
}
enc := NewPGPEncrypt(arg, tc.G)
if err := RunEngine(enc, ctx); err != nil {
t.Fatal(err)
}
out := sink.Bytes()
t.Logf("encrypted data: %x", out)
// decrypt it
decoded := libkb.NewBufferCloser()
decarg := &PGPDecryptArg{
Source: bytes.NewReader(out),
Sink: decoded,
AssertSigned: true,
}
dec := NewPGPDecrypt(decarg, tc.G)
if err := RunEngine(dec, ctx); err != nil {
t.Fatal(err)
}
decmsg := string(decoded.Bytes())
if decmsg != msg {
t.Errorf("decoded: %q, expected: %q", decmsg, msg)
}
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:40,代码来源:pgp_decrypt_test.go
示例18: encrypt
func (p *pgpPair) encrypt(sign bool) (string, int) {
ctx := &Context{IdentifyUI: &FakeIdentifyUI{}, SecretUI: p.sender.NewSecretUI()}
sink := libkb.NewBufferCloser()
arg := &PGPEncryptArg{
Recips: []string{p.recipient.Username},
Source: strings.NewReader("thank you for your order"),
Sink: sink,
NoSign: !sign,
}
eng := NewPGPEncrypt(arg, p.tcS.G)
if err := RunEngine(eng, ctx); err != nil {
p.t.Fatal(err)
}
out := sink.Bytes()
return string(out), p.idc(ctx)
}
开发者ID:jacobhaven,项目名称:client,代码行数:19,代码来源:pgp_test.go
示例19: TestPGPDecryptClearsign
func TestPGPDecryptClearsign(t *testing.T) {
tc := SetupEngineTest(t, "PGPDecrypt")
defer tc.Cleanup()
fu := createFakeUserWithPGPSibkey(tc)
ctx := decengctx(fu, tc)
for _, test := range cstests {
signedMsg := sign(ctx, tc, test.msg, keybase1.SignMode_CLEAR)
t.Logf("%s: signed message:\n\n%s\n", test.name, signedMsg)
decoded := libkb.NewBufferCloser()
arg := &PGPDecryptArg{
Source: strings.NewReader(signedMsg),
Sink: decoded,
}
eng := NewPGPDecrypt(arg, tc.G)
if err := RunEngine(eng, ctx); err != nil {
t.Errorf("%s: decrypt error: %q", test.name, err)
continue
}
msg := decoded.Bytes()
trimmed := strings.TrimSpace(string(msg))
t.Logf("clearsign test %q decoded message: %s\n", test.name, trimmed)
if trimmed != test.msg {
t.Errorf("%s: expected msg %q, got %q", test.name, test.msg, trimmed)
}
status := eng.SignatureStatus()
if !status.IsSigned {
t.Errorf("%s: expected IsSigned", test.name)
}
if !status.Verified {
t.Errorf("%s: expected Verified", test.name)
}
if status.Entity == nil {
t.Errorf("%s: signature status entity is nil", test.name)
}
}
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:40,代码来源:pgp_decrypt_test.go
示例20: TestSaltpackEncryptNoNaclOnlyPGP
func TestSaltpackEncryptNoNaclOnlyPGP(t *testing.T) {
tc := SetupEngineTest(t, "SaltpackEncrypt")
defer tc.Cleanup()
u2 := createFakeUserWithPGPOnly(t, tc)
Logout(tc)
u1 := CreateAndSignupFakeUser(tc, "nalcp")
trackUI := &FakeIdentifyUI{
Proofs: make(map[string]string),
}
ctx := &Context{
IdentifyUI: trackUI,
SecretUI: u1.NewSecretUI(),
SaltpackUI: &fakeSaltpackUI{},
}
msg := "this will never work"
sink := libkb.NewBufferCloser()
arg := &SaltpackEncryptArg{
Opts: keybase1.SaltpackEncryptOptions{
Recipients: []string{u2.Username},
NoSelfEncrypt: true,
},
Source: strings.NewReader(msg),
Sink: sink,
}
eng := NewSaltpackEncrypt(arg, tc.G)
err := RunEngine(eng, ctx)
if perr, ok := err.(libkb.NoNaClEncryptionKeyError); !ok {
t.Fatalf("Got wrong error type: %T %v", err, err)
} else if !perr.HasPGPKey {
t.Fatalf("Should have a PGP key")
} else if perr.User != u2.Username {
t.Fatalf("Wrong username")
}
}
开发者ID:qbit,项目名称:client,代码行数:38,代码来源:saltpack_encrypt_test.go
注:本文中的github.com/keybase/client/go/libkb.NewBufferCloser函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论