Update `normal.bundle` to account for stricter Lexer validations.
This commit is contained in:
parent
4f33b42f63
commit
0fcc94d7c1
|
@ -41,6 +41,7 @@ Eg: `pigeon identity show` becomes `./pigeon-cli show`.
|
|||
- [X] Put all the [HEADER, string, FOOTER].join("") nonsense into Pigeon::Helpers
|
||||
- [X] Use raw SHA256 hashes for blob multihashes, not hex.
|
||||
- [X] Change all the `{40,90}` values in ::Lexer to real length values
|
||||
- [ ] Is it possible signature verification is failing beecause a CR is being prepended to the front?
|
||||
- [ ] Rename (RemoteIdentity|LocalIdentity)#public_key to #multihash for consistency with other types.
|
||||
- [ ] Rename `message find` to `message read`, since other finders return a multihash.
|
||||
- [ ] Don't allow carriage return in `kind` or `string` keys. Write a test for this.
|
||||
|
|
|
@ -6,10 +6,11 @@ module Pigeon
|
|||
DEPTH_COUNT = /\d{1,7}/
|
||||
NULL_VALUE = /NONE/
|
||||
FEED_VALUE = /@.{44}\.ed25519/
|
||||
MESG_VALUE = /%.{43}\.sha256/
|
||||
BLOB_VALUE = /&.{43}\.sha256/
|
||||
STRG_VALUE = /".{1,64}"/
|
||||
B64LIKE = /[a-zA-Z0-9_\-=]{1,64}/
|
||||
MESG_VALUE = /%.{44}\.sha256/
|
||||
BLOB_VALUE = /&.{44}\.sha256/
|
||||
STRG_VALUE = /".{1,90}"/
|
||||
# If you need other characters (but not spaces) submit an issue.
|
||||
ALPHANUMERICISH = /[a-zA-Z0-9_\-=\.]{1,90}/
|
||||
ALL_VALUES = [
|
||||
FEED_VALUE,
|
||||
MESG_VALUE,
|
||||
|
@ -23,8 +24,8 @@ module Pigeon
|
|||
AUTHOR = /author #{FEED_VALUE}\n/
|
||||
DEPTH = /depth #{DEPTH_COUNT}\n/
|
||||
PREV = /prev (#{MESG_VALUE}|#{NULL_VALUE})\n/
|
||||
KIND = /kind #{B64LIKE}\n/
|
||||
BODY_ENTRY = /#{B64LIKE}:#{ANY_VALUE}\n/
|
||||
KIND = /kind #{ALPHANUMERICISH}\n/
|
||||
BODY_ENTRY = /#{ALPHANUMERICISH}:#{ANY_VALUE}\n/
|
||||
|
||||
FOOTER_ENTRY = /signature .*{87,88}\.sig\.ed25519\n?/
|
||||
|
||||
|
|
|
@ -1,22 +1,27 @@
|
|||
author @DYdgK1KUInVtG3lS45hA1HZ-jTuvfLKsxDpXPFCve04=.ed25519
|
||||
kind scratch_pad
|
||||
author @jdiXWunmWiex-dHONMlj7b1HMMFNjbpAj1t9oInbugY=.ed25519
|
||||
kind strings
|
||||
prev NONE
|
||||
depth 0
|
||||
|
||||
key1:"my_value\n"
|
||||
key2:"my_value2"
|
||||
key3:"my_value3"
|
||||
key4:%jvKh9yoiEJaePzoWCF1nnqpIlPgTk9FHEtqczQbvzGM=.sha256
|
||||
key5:&29f3933302c49c60841d7620886ce54afc68630242aee6ff683926d2465e6ca3.sha256
|
||||
key6:@galdahnB3L2DE2cTU0Me54IpIUKVEgKmBwvZVtWJccg=.ed25519
|
||||
example_1.1:"This is a string."
|
||||
example=_.:"A second string."
|
||||
|
||||
signature DN7yPTE-m433ND3jBL4oM23XGxBKafjq0Dp9ArBQa_TIGU7DmCxTumieuPBN-NKxlx_0N7-c5zjLb5XXVHYPCQ==.sig.ed25519
|
||||
signature hCPIr8xdWIIjtiJp1Sj64v0AgP_ypeDTtZrs8MRHw7w_bMJ7Hx6rSbDOgVUmdIegqD-gEk2WI2S_dUKQ8jg7CQ==.sig.ed25519
|
||||
|
||||
author @DYdgK1KUInVtG3lS45hA1HZ-jTuvfLKsxDpXPFCve04=.ed25519
|
||||
kind second_test
|
||||
prev %ZTBmYWZlMGU0Nzg0ZWZlYjA5NjA0MzdlZWVlNTBiMmY4ODEyZWI1NTZkODcwN2FlMDQxYThmMDExNTNhM2E4NQ==.sha256
|
||||
author @jdiXWunmWiex-dHONMlj7b1HMMFNjbpAj1t9oInbugY=.ed25519
|
||||
kind d
|
||||
prev %83td57rcLLFEM7-6HPXDcniwXc4QQo9nyyWn0zhXJGg=.sha256
|
||||
depth 1
|
||||
|
||||
hello:"world"
|
||||
e:&ZGKl9RdLU3Avwlr-Z6j5op9XJhCmW6_v_2J1MVUvCW8=.sha256
|
||||
|
||||
signature AerpDKbKRrcaM9wihwFsPC4YRAfYWie5XFEKAdnxQom7MTvsXd9W39AvHfljJnEePZpsQVdfq2TtBPoQHc-MCw==.sig.ed25519
|
||||
signature FpfdovnJttEZkl-SMO83Nq8gqsfnB4NvtZ4YRdhxKQDK30l1OKpPw5GeFiOEdTJK8WPncq_m0eBHPP84hJ0BDg==.sig.ed25519
|
||||
|
||||
author @jdiXWunmWiex-dHONMlj7b1HMMFNjbpAj1t9oInbugY=.ed25519
|
||||
kind g
|
||||
prev %vVMEqvHHjqubE36olIVStUp-vq0T1e2UsvKdv57kmLU=.sha256
|
||||
depth 2
|
||||
|
||||
me_myself_and_i:@jdiXWunmWiex-dHONMlj7b1HMMFNjbpAj1t9oInbugY=.ed25519
|
||||
|
||||
signature 4ARYLytFIcU-TAYoybL3za9cyiTX_5Jt04ueKmPjZVYA6jST6KyQXvUo57MMjfjsdAmXeV-2Nw2Jbx8HaeTqBg==.sig.ed25519
|
||||
|
|
|
@ -59,13 +59,22 @@ RSpec.describe Pigeon::Storage do
|
|||
end
|
||||
|
||||
it "finds all messages" do
|
||||
a = Pigeon::Helpers.create_message("a", { "b" => "c" })
|
||||
d = Pigeon::Helpers.create_message("d", { "e" => "f" })
|
||||
g = Pigeon::Helpers.create_message("g", { "h" => "i" })
|
||||
msgs = [
|
||||
Pigeon::Helpers.create_message("strings", {
|
||||
"example_1.1" => "This is a string.",
|
||||
"example=_." => "A second string.",
|
||||
}),
|
||||
Pigeon::Helpers.create_message("d", {
|
||||
"e" => Pigeon::Storage.current.set_blob(File.read("./logo.png")),
|
||||
}),
|
||||
Pigeon::Helpers.create_message("g", {
|
||||
"me_myself_and_i" => Pigeon::LocalIdentity.current.public_key,
|
||||
}),
|
||||
]
|
||||
results = Pigeon::Storage.current.find_all
|
||||
expect(results.length).to eq(3)
|
||||
expect(a.multihash).to eq(results[0])
|
||||
expect(d.multihash).to eq(results[1])
|
||||
expect(g.multihash).to eq(results[2])
|
||||
expect(msgs[0].multihash).to eq(results[0])
|
||||
expect(msgs[1].multihash).to eq(results[1])
|
||||
expect(msgs[2].multihash).to eq(results[2])
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue