func TestSigner(t *testing.T) { if testing.Short() { t.Skip("skipping in short mode") } ent, err := jsonsign.NewEntity() if err != nil { t.Fatal(err) } armorPub, err := jsonsign.ArmoredPublicKey(ent) if err != nil { t.Fatal(err) } pubRef := blob.SHA1FromString(armorPub) sig, err := NewSigner(pubRef, strings.NewReader(armorPub), ent) if err != nil { t.Fatalf("NewSigner: %v", err) } pn, err := NewUnsignedPermanode().Sign(sig) if err != nil { t.Fatalf("NewPermanode: %v", err) } if !strings.Contains(pn, `,"camliSig":"`) { t.Errorf("Permanode doesn't look signed: %v", pn) } }
func generateNewSecRing(filename string) (keyId string, err error) { ent, err := jsonsign.NewEntity() if err != nil { return "", fmt.Errorf("generating new identity: %v", err) } f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600) if err != nil { return "", err } defer f.Close() err = jsonsign.WriteKeyRing(f, openpgp.EntityList([]*openpgp.Entity{ent})) if err != nil { return "", fmt.Errorf("writing new key ring to %s: %v", filename, err) } return ent.PrimaryKey.KeyIdShortString(), nil }