Begin sigil renames

This commit is contained in:
Netscape Navigator 2020-05-22 08:36:02 -05:00
parent 9a007990a0
commit 351f7db3e7
9 changed files with 23 additions and 25 deletions

View File

@ -46,8 +46,7 @@ See `kitchen_sink.sh` examples.
# Current Status
- [ ] Enforce canonical header ordering: `author`, `prev`, `lipmaa`, `depth`, `kind`.
- [ ] Change `@`, `%`, `&` to `feed.`, `mesg.`, `blob.`, respectively. Better readability, easier onboarding, URL friendly.
- [ ] Change `@`, `%`, `&` to `feed.`, `text.`, `file.`, respectively. Better readability, easier onboarding, URL friendly.
- [ ] Update Dev docs in protocol spec to reflect changes to `lipmaa` header.
- [ ] Update spec document CLI usage examples to reflect API changes in 2020.
- [ ] 100% class / module documentation

View File

@ -44,12 +44,11 @@ module Pigeon
# ^ Internal namespaces for PStore keys
BLOB_SIGIL = "&"
MESSAGE_SIGIL = "%"
IDENTITY_SIGIL = "@"
BLOB_SIGIL = "FILE."
MESSAGE_SIGIL = "TEXT."
IDENTITY_SIGIL = "TEXT."
STRING_SIGIL = "\""
IDENTITY_FOOTER = ".ed25519"
BLOB_FOOTER = ".sha256"
SIG_FOOTER = ".sig.ed25519"
# Error messages

View File

@ -58,9 +58,9 @@ module Pigeon
# TODO: Create regexes using string and Regexp.new() for cleaner regexes.
NUMERIC = /\d{1,7}/
NULL_VALUE = /NONE/
FEED_VALUE = /@.{52}\.ed25519/
MESG_VALUE = /%.{52}\.sha256/
BLOB_VALUE = /&.{52}\.sha256/
FEED_VALUE = /FEED.{52}/
MESG_VALUE = /TEXT.{52}/
BLOB_VALUE = /FILE.{52}/
STRG_VALUE = /".{1,128}"/
# If you need other characters (but not spaces) submit an issue.
ALPHANUMERICISH = /[a-zA-Z0-9_\-=\.\@\&]{1,90}/

View File

@ -40,7 +40,7 @@ RSpec.describe Pigeon::Message do
it "does not ingest messages from blocked peers" do
db.reset_database
antagonist = "@YDVX7JWTVNRFEVYC8E8DS9MVWW9KB66F1XQYMNB2FQ6QBPXKAQX0.ed25519"
antagonist = "TEXT.YDVX7JWTVNRFEVYC8E8DS9MVWW9KB66F1XQYMNB2FQ6QBPXKAQX0.ed25519"
db.block_peer(antagonist)
db.import_bundle(BLOCKED_PEER_FIXTURE_PATH)
expect(db.all_messages.count).to eq(0)
@ -49,9 +49,9 @@ RSpec.describe Pigeon::Message do
it "ingests a bundle's blobs" do
db.reset_database
blobs = [
"&622PRNJ7C0S05XR2AHDPKWMG051B1QW5SXMN2RQHF2AND6J8VGPG.sha256",
"&FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG.sha256",
"&YPF11E5N9JFVB6KB1N1WDVVT9DXMCHE0XJWBZHT2CQ29S5SEPCSG.sha256",
"FILE.622PRNJ7C0S05XR2AHDPKWMG051B1QW5SXMN2RQHF2AND6J8VGPG",
"FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG",
"FILE.YPF11E5N9JFVB6KB1N1WDVVT9DXMCHE0XJWBZHT2CQ29S5SEPCSG",
]
db.import_bundle(HAS_BLOB_PATH)
expect(db.all_messages.count).to eq(3)

View File

@ -2,7 +2,7 @@ require "spec_helper"
RSpec.describe Pigeon::Lexer do
EXPECTED_TOKENS1 = [
[:AUTHOR, "@3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 69],
[:AUTHOR, "TEXT.3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 69],
[:DEPTH, 0, 77],
[:KIND, "unit_test1", 93],
[:LIPMAA, "NONE", 105],
@ -12,21 +12,21 @@ RSpec.describe Pigeon::Lexer do
[:BODY_END, 127],
[:SIGNATURE, "2BTX69F6E30BBDNQ0XTT20NCG8C0B393SGQSW5M00G8KF33CAE1YB1MPT760KSTRV2ZJCCNJ883JXEWTTTEEJ8JBHNWEJQFSZ035P0R.sig.ed25519", 253],
[:MESSAGE_DELIM, 254],
[:AUTHOR, "@3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 323],
[:AUTHOR, "TEXT.3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 323],
[:DEPTH, 1, 331],
[:KIND, "unit_test2", 347],
[:LIPMAA, "NONE", 359],
[:PREV, "%RW61BRVRAAM31RFPQ8W6MTYBN840Y898MQ2GTDRSMQES84RPJKHG.sha256", 425],
[:PREV, "TEXT.RW61BRVRAAM31RFPQ8W6MTYBN840Y898MQ2GTDRSMQES84RPJKHG.sha256", 425],
[:HEADER_END, 426],
[:BODY_ENTRY, "bar", "\"baz\"", 436],
[:BODY_END, 437],
[:SIGNATURE, "TXC15FZZVK30Q5ZRERFR9VXAJ8KKE58ZGF1JEBNETJN1MHN9EGRQJP7PX99NBZMX177XZWE3M2PCPPF4VBN4J93W2H5FTNJ7K7VG818.sig.ed25519", 563],
[:MESSAGE_DELIM, 564],
[:AUTHOR, "@3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 633],
[:AUTHOR, "TEXT.3DWXGXHXCB02WV1TEA47J43HHTTBNMM496ANME7FZ2SYPGA9KTZG.ed25519", 633],
[:DEPTH, 2, 641],
[:KIND, "unit_test3", 657],
[:LIPMAA, "NONE", 669],
[:PREV, "%CSX0CDPY96DGTGT9V0TNZJ4S84JTSK4AYNE193VXF8AH9ZJHT82G.sha256", 735],
[:PREV, "TEXT.CSX0CDPY96DGTGT9V0TNZJ4S84JTSK4AYNE193VXF8AH9ZJHT82G.sha256", 735],
[:HEADER_END, 736],
[:BODY_ENTRY, "cats", "\"meow\"", 748],
[:BODY_END, 749],
@ -103,7 +103,7 @@ RSpec.describe Pigeon::Lexer do
8 => "Parse error at 126. Double carriage return not found.",
}
(0..8).to_a.map do |n|
t = MESSAGE_LINES.dup.insert(n, "@@@").join("\n")
t = MESSAGE_LINES.dup.insert(n, "TEXT.@@").join("\n")
emsg = err_map.fetch(n)
expect { Pigeon::Lexer.tokenize(t) }.to raise_error(e, emsg)
end

View File

@ -16,7 +16,7 @@ RSpec.describe Pigeon::LocalIdentity do
end
it "generates a pair from a seed" do
x = "@XSZY1ME6QMA5BBSJ8QSDJCSG6EVDTCKYNMV221SB7B2NZR5K09J0.ed25519"
x = "TEXT.XSZY1ME6QMA5BBSJ8QSDJCSG6EVDTCKYNMV221SB7B2NZR5K09J0.ed25519"
expect(kp.multihash).to eq(x)
y = "2PRTG7F13HWF1HPW9FF9NDSYGSQS5VXQ2WMZY0A510J64AE9G840"
expect(kp.private_key).to eq(y)

View File

@ -132,11 +132,11 @@ RSpec.describe Pigeon::Message do
it "crashes on forged fields" do
tokens = [
[:AUTHOR, "@DYdgK1KUInVtG3lS45hA1HZ-jTuvfLKsxDpXPFCve04=.ed25519"],
[:AUTHOR, "FEED.G1YEXWJXCCAYPQ42S98K730CEW6ME5HRWJKHHEGYVYPFHS4S7EP4"],
[:KIND, "invalid"],
[:PREV, "NONE"],
[:DEPTH, 10],
[:LIPMAA, "%4PE7S4XCCAYPQ42S98K730CEW6ME5HRWJKHHEGYVYPFHSJWXEY1G.sha256"],
[:LIPMAA, "TEXT.4PE7S4XCCAYPQ42S98K730CEW6ME5HRWJKHHEGYVYPFHSJWXEY1G"],
[:HEADER_END],
[:BODY_ENTRY, "duplicate", "This key is a duplicate."],
[:SIGNATURE, "DN7yPTE-m433ND3jBL4oM23XGxBKafjq0Dp9ArBQa_TIGU7DmCxTumieuPBN-NKxlx_0N7-c5zjLb5XXVHYPCQ==.sig.ed25519"],

View File

@ -10,7 +10,7 @@ RSpec.describe Pigeon::Lexer do
let(:tokens) { Pigeon::Lexer.tokenize(example_bundle) }
BAD_TOKENS = [
[:AUTHOR, "@DYdgK1KUInVtG3lS45hA1HZ-jTuvfLKsxDpXPFCve04=.ed25519"],
[:AUTHOR, "TEXT.DYdgK1KUInVtG3lS45hA1HZ-jTuvfLKsxDpXPFCve04=.ed25519"],
[:KIND, "invalid"],
[:PREV, "NONE"],
[:DEPTH, 0],

View File

@ -11,7 +11,7 @@ RSpec.describe Pigeon::MessageSerializer do
"\nprev NONE",
"\n\nfoo:\"bar\"\n\n",
].join("")
BOTTOM_HALF = "signature XYZ.sig.sha256"
BOTTOM_HALF = "signature XYZ"
EXPECTED_DRAFT = TOP_HALF + BOTTOM_HALF
class FakeLocalIdentity
@ -27,7 +27,7 @@ RSpec.describe Pigeon::MessageSerializer do
kind: "FAKE_KIND",
depth: 23,
prev: nil,
signature: "XYZ.sig.sha256",
signature: "XYZ",
lipmaa: 22,
}.values
message = MessageShim.new(*params)