forked from keybase/client
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
8 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
{"kit_version":1,"ctime":1489692564,"tab":{"1":{"pvl_version":1,"revision":1,"services":{"coinbase":[[{"fill":{"with":"x","into":"tmp1"}},{"assert_regex_match":{"pattern":"^y$","from":"tmp1","error":["SERVICE_DEAD","coinbase proofs are no longer supported"]}}]],"dns":[[{"assert_regex_match":{"pattern":"^keybase-site-verification=%{sig_id_medium}$","from":"txt","error":["NOT_FOUND","matching DNS entry not found"]}}]],"facebook":[[{"assert_regex_match":{"pattern":"^[a-zA-Z0-9\\.]+$","from":"username_service","error":["BAD_USERNAME","Invalid characters in username '%{username_service}'"]}},{"regex_capture":{"pattern":"^https://(m|www)\\.facebook\\.com/([^/]*)/posts/([0-9]+)$","from":"hint_url","into":["unused1","username_from_url","post_id"],"error":["BAD_API_URL","Bad hint from server; URL should start with 'https://m.facebook.com/%{username_service}/posts/', got '%{hint_url}'"]}},{"assert_compare":{"cmp":"stripdots-then-cicmp","a":"username_from_url","b":"username_service","error":["BAD_API_URL","Bad hint from server; username in URL should match '%{username_service}', received '%{username_from_url}'"]}},{"fill":{"with":"https://www.facebook.com/%{username_from_url}/posts/%{post_id}","into":"our_url"}},{"fetch":{"kind":"html","from":"our_url"}},{"selector_css":{"selectors":["code",0,{"contents":true},0],"into":"first_code_comment","data":true,"error":["FAILED_PARSE","Could not find proof markup comment in Facebook's response"]}},{"replace_all":{"old":"-\\-\\","new":"--","from":"first_code_comment","into":"fcc2"}},{"replace_all":{"old":"\\\\","new":"\\","from":"fcc2","into":"fcc3"}},{"parse_html":{"from":"fcc3","error":["FAILED_PARSE","Failed to parse proof markup comment in Facebook post: %{fcc3}"]}},{"selector_css":{"selectors":["div.userContent+div a",1],"into":"link_text","error":["FAILED_PARSE","Could not find link text in Facebook's response"]}},{"whitespace_normalize":{"from":"link_text","into":"link_text_nw"}},{"regex_capture":{"pattern":"^Verifying myself: I am (\\S+) on Keybase.io. (\\S+)$","from":"link_text_nw","into":["username_from_link","sig_from_link"],"error":["TEXT_NOT_FOUND","Could not find Verifying myself: I am %{username_keybase} on Keybase.io. (%{sig_id_medium})"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_link","b":"username_keybase","error":["BAD_USERNAME","Wrong keybase username in post '%{username_from_link}' should be '%{username_keybase}'"]}},{"assert_compare":{"cmp":"exact","a":"sig_id_medium","b":"sig_from_link","error":["BAD_SIGNATURE","Could not find sig; '%{sig_from_link}' != '%{sig_id_medium}'"]}}]],"github":[[{"regex_capture":{"pattern":"^https://gist\\.github(?:usercontent)?\\.com/([^/]*)/.*$","from":"hint_url","into":["username_from_url"],"error":["BAD_API_URL","Bad hint from server; URL should start with either https://gist.github.com OR https://gist.githubusercontent.com"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_url","b":"username_service","error":["BAD_API_URL","Bad hint from server; URL should contain username matching %{username_service}; got %{username_from_url}"]}},{"fetch":{"kind":"string","from":"hint_url","into":"haystack"}},{"assert_find_base64":{"needle":"sig","haystack":"haystack"},"error":["TEXT_NOT_FOUND","signature not found in body"]}]],"hackernews":[[{"regex_capture":{"pattern":"^https://hacker-news\\.firebaseio\\.com/v0/user/([^/]+)/about.json$","from":"hint_url","into":["username_from_url"],"error":["BAD_API_URL","Bad hint from server; URL should match https://hacker-news.firebaseio.com/v0/user/%{username_service}/about.json"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_url","b":"username_service","error":["BAD_API_URL","Bad hint from server; URL should contain username matching %{username_service}; got %{username_from_url}"]}},{"fetch":{"kind":"string","from":"hint_url","into":"profile"}},{"assert_regex_match":{"pattern":"^.*%{sig_id_medium}.*$","from":"profile","error":["TEXT_NOT_FOUND","Posted text does not include signature '%{sig_id_medium}'"]}}]],"reddit":[[{"regex_capture":{"pattern":"^https://www.reddit.com/r/([^/]+)/(.*)$","from":"hint_url","into":["subreddit_from_url","path_remainder"],"error":["BAD_API_URL","URL should start with 'https://www.reddit.com/r/keybaseproofs'"]}},{"assert_regex_match":{"pattern":"^keybaseproofs$","case_insensitive":true,"from":"subreddit_from_url","error":["BAD_API_URL","URL contained wrong subreddit '%{subreddit_from_url}' !+ 'keybaseproofs'"]}},{"fetch":{"from":"hint_url","kind":"json"}},{"selector_json":{"selectors":[0,"kind"],"into":"kind","error":["CONTENT_MISSING","Could not find 'kind' in json"]}},{"assert_regex_match":{"pattern":"^Listing$","from":"kind","error":["CONTENT_FAILURE","Wanted a post of type 'Listing', but got '%{kind}'"]}},{"selector_json":{"selectors":[0,"data","children",0,"kind"],"into":"inner_kind","error":["CONTENT_MISSING","Could not find inner 'kind' in json"]}},{"assert_regex_match":{"pattern":"^t3$","from":"inner_kind","error":["CONTENT_FAILURE","Wanted a child of type 't3' but got '%{inner_kind}'"]}},{"selector_json":{"selectors":[0,"data","children",0,"data","subreddit"],"into":"subreddit_from_json","error":["CONTENT_MISSING","Could not find 'subreddit' in json"]}},{"assert_regex_match":{"pattern":"^keybaseproofs$","case_insensitive":true,"from":"subreddit_from_json","error":["CONTENT_FAILURE","Wrong subreddti %{subreddit_from_json}"]}},{"selector_json":{"selectors":[0,"data","children",0,"data","author"],"into":"author","error":["CONTENT_MISSING","Could not find author in json"]}},{"assert_compare":{"cmp":"cicmp","a":"author","b":"username_service","error":["BAD_USERNAME","Bad post author; wanted '%{username_service}' but got '%{author}'"]}},{"selector_json":{"selectors":[0,"data","children",0,"data","title"],"into":"title","error":["CONTENT_MISSING","Could not find title in json"]}},{"assert_regex_match":{"pattern":"^.*%{sig_id_medium}.*$","from":"title","error":["TITLE_NOT_FOUND","Missing signature ID (%{sig_id_medium})) in post title '%{title}'"]}},{"selector_json":{"selectors":[0,"data","children",0,"data","selftext"],"into":"selftext","error":["CONTENT_MISSING","Could not find selftext in json"]}},{"assert_find_base64":{"needle":"sig","haystack":"selftext","error":["TEXT_NOT_FOUND","signature not found in body"]}}]],"rooter":[[{"assert_regex_match":{"pattern":"^https?://[\\w:_\\-\\.]+/_/api/1\\.0/rooter/%{username_service}/.*$","case_insensitive":true,"from":"hint_url"}},{"fetch":{"from":"hint_url","kind":"json"}},{"selector_json":{"selectors":["status","name"],"into":"name"}},{"assert_regex_match":{"pattern":"^ok$","case_insensitive":true,"from":"name"}},{"selector_json":{"selectors":["toot","post"],"into":"post"}},{"assert_regex_match":{"pattern":"^.*%{sig_id_medium}.*$","from":"post"}}]],"twitter":[[{"regex_capture":{"pattern":"^https://twitter\\.com/([^/]+)/.*$","from":"hint_url","into":["username_from_url"],"error":["BAD_API_URL","Bad hint from server; URL should start with 'https://twitter.com/%{username_service}/'"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_url","b":"username_service","error":["BAD_API_URL","Bad hint from server; URL should contain username matching %{username_service}; got %{username_from_url}"]}},{"fetch":{"from":"hint_url","kind":"html"}},{"selector_css":{"selectors":["div.permalink-tweet-container div.permalink-tweet",0],"attr":"data-screen-name","into":"data_screen_name","error":["FAILED_PARSE","Couldn't find a div $(div.permalink-tweet-container div.permalink-tweet).eq(0)"]}},{"assert_compare":{"cmp":"cicmp","a":"data_screen_name","b":"username_service","error":["BAD_USERNAME","Bad post authored: wanted '%{username_service}' but got '%{data_screen_name}'"]}},{"selector_css":{"selectors":["div.permalink-tweet-container div.permalink-tweet",0,"p.tweet-text",0],"into":"tweet_contents","error":["CONTENT_MISSING","Missing <div class='tweet-text'> container for tweet"]}},{"whitespace_normalize":{"from":"tweet_contents","into":"tweet_contents_nw"}},{"regex_capture":{"pattern":"^ *(?:@[a-zA-Z0-9_-]+\\s*)* *Verifying myself: I am ([A-Za-z0-9_]+) on Keybase\\.io\\. (\\S+) */.*$","from":"tweet_contents_nw","into":["username_from_tweet_contents","sig_from_tweet_contents"],"error":["DELETED","Could not find 'Verifying myself: I am %{username_keybase} on Keybase.io. %{sig_id_short}'"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_tweet_contents","b":"username_keybase","error":["BAD_USERNAME","Wrong username in tweet '%{username_from_tweet_contents}' should be '%{username_keybase}'"]}},{"assert_regex_match":{"pattern":"^%{sig_id_short}$","from":"sig_from_tweet_contents","error":["TEXT_NOT_FOUND","Could not find sig '%{sig_from_tweet_contents}' != '%{sig_id_short}'"]}}]],"generic_web_site":[[{"assert_regex_match":{"pattern":"^%{protocol}://%{hostname}/(?:\\.well-known/keybase\\.txt|keybase\\.txt)$","from":"hint_url","error":["BAD_API_URL","Bad hint from server; didn't recognize API url: \"%{hint_url}\""]}},{"fetch":{"kind":"string","from":"hint_url","into":"blob"}},{"assert_find_base64":{"needle":"sig","haystack":"blob","error":["TEXT_NOT_FOUND","signature not found in body"]}}]]}}}} | ||
{"kit_version":1,"ctime":1492631322,"tab":{"1":{"pvl_version":1,"revision":1,"services":{"coinbase":[[{"fill":{"with":"x","into":"tmp1"}},{"assert_regex_match":{"pattern":"^y$","from":"tmp1","error":["SERVICE_DEAD","coinbase proofs are no longer supported"]}}]],"dns":[[{"assert_regex_match":{"pattern":"^keybase-site-verification=%{sig_id_medium}$","from":"txt","error":["NOT_FOUND","matching DNS entry not found"]}}]],"facebook":[[{"assert_regex_match":{"pattern":"^[a-zA-Z0-9\\.]+$","from":"username_service","error":["BAD_USERNAME","Invalid characters in username '%{username_service}'"]}},{"regex_capture":{"pattern":"^https://(m|www)\\.facebook\\.com/([^/]*)/posts/([0-9]+)$","from":"hint_url","into":["unused1","username_from_url","post_id"],"error":["BAD_API_URL","Bad hint from server; URL should start with 'https://m.facebook.com/%{username_service}/posts/', got '%{hint_url}'"]}},{"assert_compare":{"cmp":"stripdots-then-cicmp","a":"username_from_url","b":"username_service","error":["BAD_API_URL","Bad hint from server; username in URL should match '%{username_service}', received '%{username_from_url}'"]}},{"fill":{"with":"https://www.facebook.com/%{username_from_url}/posts/%{post_id}","into":"our_url"}},{"fetch":{"kind":"html","from":"our_url"}},{"selector_css":{"selectors":["code",0,{"contents":true},0],"into":"first_code_comment","data":true,"error":["FAILED_PARSE","Could not find proof markup comment in Facebook's response"]}},{"replace_all":{"old":"-\\-\\","new":"--","from":"first_code_comment","into":"fcc2"}},{"replace_all":{"old":"\\\\","new":"\\","from":"fcc2","into":"fcc3"}},{"parse_html":{"from":"fcc3","error":["FAILED_PARSE","Failed to parse proof markup comment in Facebook post: %{fcc3}"]}},{"selector_css":{"selectors":["div.userContent+div a",1],"into":"link_text","error":["FAILED_PARSE","Could not find link text in Facebook's response"]}},{"whitespace_normalize":{"from":"link_text","into":"link_text_nw"}},{"regex_capture":{"pattern":"^Verifying myself: I am (\\S+) on Keybase.io. (\\S+)$","from":"link_text_nw","into":["username_from_link","sig_from_link"],"error":["TEXT_NOT_FOUND","Could not find Verifying myself: I am %{username_keybase} on Keybase.io. (%{sig_id_medium})"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_link","b":"username_keybase","error":["BAD_USERNAME","Wrong keybase username in post '%{username_from_link}' should be '%{username_keybase}'"]}},{"assert_compare":{"cmp":"exact","a":"sig_id_medium","b":"sig_from_link","error":["BAD_SIGNATURE","Could not find sig; '%{sig_from_link}' != '%{sig_id_medium}'"]}}]],"github":[[{"regex_capture":{"pattern":"^https://gist\\.github(?:usercontent)?\\.com/([^/]*)/.*$","from":"hint_url","into":["username_from_url"],"error":["BAD_API_URL","Bad hint from server; URL should start with either https://gist.github.com OR https://gist.githubusercontent.com"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_url","b":"username_service","error":["BAD_API_URL","Bad hint from server; URL should contain username matching %{username_service}; got %{username_from_url}"]}},{"fetch":{"kind":"string","from":"hint_url","into":"haystack"}},{"assert_find_base64":{"needle":"sig","haystack":"haystack"},"error":["TEXT_NOT_FOUND","signature not found in body"]}]],"hackernews":[[{"regex_capture":{"pattern":"^https://hacker-news\\.firebaseio\\.com/v0/user/([^/]+)/about.json$","from":"hint_url","into":["username_from_url"],"error":["BAD_API_URL","Bad hint from server; URL should match https://hacker-news.firebaseio.com/v0/user/%{username_service}/about.json"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_url","b":"username_service","error":["BAD_API_URL","Bad hint from server; URL should contain username matching %{username_service}; got %{username_from_url}"]}},{"fetch":{"kind":"string","from":"hint_url","into":"profile"}},{"assert_regex_match":{"pattern":"^.*%{sig_id_medium}.*$","from":"profile","error":["TEXT_NOT_FOUND","Posted text does not include signature '%{sig_id_medium}'"]}}]],"reddit":[[{"regex_capture":{"pattern":"^https://www.reddit.com/r/([^/]+)/(.*)$","from":"hint_url","into":["subreddit_from_url","path_remainder"],"error":["BAD_API_URL","URL should start with 'https://www.reddit.com/r/keybaseproofs'"]}},{"assert_regex_match":{"pattern":"^.*reddit.*$","from":"hint_url","error":["BAD_API_URL","URL should contain 'reddit'"]}},{"assert_regex_match":{"pattern":"^keybaseproofs$","case_insensitive":true,"from":"subreddit_from_url","error":["BAD_API_URL","URL contained wrong subreddit '%{subreddit_from_url}' !+ 'keybaseproofs'"]}},{"fetch":{"from":"hint_url","kind":"json"}},{"selector_json":{"selectors":[0,"kind"],"into":"kind","error":["CONTENT_MISSING","Could not find 'kind' in json"]}},{"assert_regex_match":{"pattern":"^Listing$","from":"kind","error":["CONTENT_FAILURE","Wanted a post of type 'Listing', but got '%{kind}'"]}},{"selector_json":{"selectors":[0,"data","children",0,"kind"],"into":"inner_kind","error":["CONTENT_MISSING","Could not find inner 'kind' in json"]}},{"assert_regex_match":{"pattern":"^t3$","from":"inner_kind","error":["CONTENT_FAILURE","Wanted a child of type 't3' but got '%{inner_kind}'"]}},{"selector_json":{"selectors":[0,"data","children",0,"data","subreddit"],"into":"subreddit_from_json","error":["CONTENT_MISSING","Could not find 'subreddit' in json"]}},{"assert_regex_match":{"pattern":"^keybaseproofs$","case_insensitive":true,"from":"subreddit_from_json","error":["CONTENT_FAILURE","Wrong subreddti %{subreddit_from_json}"]}},{"selector_json":{"selectors":[0,"data","children",0,"data","author"],"into":"author","error":["CONTENT_MISSING","Could not find author in json"]}},{"assert_compare":{"cmp":"cicmp","a":"author","b":"username_service","error":["BAD_USERNAME","Bad post author; wanted '%{username_service}' but got '%{author}'"]}},{"selector_json":{"selectors":[0,"data","children",0,"data","title"],"into":"title","error":["CONTENT_MISSING","Could not find title in json"]}},{"assert_regex_match":{"pattern":"^.*%{sig_id_medium}.*$","from":"title","error":["TITLE_NOT_FOUND","Missing signature ID (%{sig_id_medium})) in post title '%{title}'"]}},{"selector_json":{"selectors":[0,"data","children",0,"data","selftext"],"into":"selftext","error":["CONTENT_MISSING","Could not find selftext in json"]}},{"assert_find_base64":{"needle":"sig","haystack":"selftext","error":["TEXT_NOT_FOUND","Signature not found in body"]}}]],"rooter":[[{"assert_regex_match":{"pattern":"^https?://[\\w:_\\-\\.]+/_/api/1\\.0/rooter/%{username_service}/.*$","case_insensitive":true,"from":"hint_url"}},{"fetch":{"from":"hint_url","kind":"json"}},{"selector_json":{"selectors":["status","name"],"into":"name"}},{"assert_regex_match":{"pattern":"^ok$","case_insensitive":true,"from":"name"}},{"selector_json":{"selectors":["toot","post"],"into":"post"}},{"assert_regex_match":{"pattern":"^.*%{sig_id_medium}.*$","from":"post"}}]],"twitter":[[{"regex_capture":{"pattern":"^https://twitter\\.com/([^/]+)/.*$","from":"hint_url","into":["username_from_url"],"error":["BAD_API_URL","Bad hint from server; URL should start with 'https://twitter.com/%{username_service}/'"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_url","b":"username_service","error":["BAD_API_URL","Bad hint from server; URL should contain username matching %{username_service}; got %{username_from_url}"]}},{"fetch":{"from":"hint_url","kind":"html"}},{"selector_css":{"selectors":["div.permalink-tweet-container div.permalink-tweet",0],"attr":"data-screen-name","into":"data_screen_name","error":["FAILED_PARSE","Couldn't find a div $(div.permalink-tweet-container div.permalink-tweet).eq(0)"]}},{"assert_compare":{"cmp":"cicmp","a":"data_screen_name","b":"username_service","error":["BAD_USERNAME","Bad post authored: wanted '%{username_service}' but got '%{data_screen_name}'"]}},{"selector_css":{"selectors":["div.permalink-tweet-container div.permalink-tweet",0,"p.tweet-text",0],"into":"tweet_contents","error":["CONTENT_MISSING","Missing <div class='tweet-text'> container for tweet"]}},{"whitespace_normalize":{"from":"tweet_contents","into":"tweet_contents_nw"}},{"regex_capture":{"pattern":"^ *(?:@[a-zA-Z0-9_-]+\\s*)* *Verifying myself: I am ([A-Za-z0-9_]+) on Keybase\\.io\\. (\\S+) */.*$","from":"tweet_contents_nw","into":["username_from_tweet_contents","sig_from_tweet_contents"],"error":["DELETED","Could not find 'Verifying myself: I am %{username_keybase} on Keybase.io. %{sig_id_short}'"]}},{"assert_compare":{"cmp":"cicmp","a":"username_from_tweet_contents","b":"username_keybase","error":["BAD_USERNAME","Wrong username in tweet '%{username_from_tweet_contents}' should be '%{username_keybase}'"]}},{"assert_regex_match":{"pattern":"^%{sig_id_short}$","from":"sig_from_tweet_contents","error":["TEXT_NOT_FOUND","Could not find sig '%{sig_from_tweet_contents}' != '%{sig_id_short}'"]}}]],"generic_web_site":[[{"assert_regex_match":{"pattern":"^%{protocol}://%{hostname}/(?:\\.well-known/keybase\\.txt|keybase\\.txt)$","from":"hint_url","error":["BAD_API_URL","Bad hint from server; didn't recognize API url: \"%{hint_url}\""]}},{"fetch":{"kind":"string","from":"hint_url","into":"blob"}},{"assert_find_base64":{"needle":"sig","haystack":"blob","error":["TEXT_NOT_FOUND","Signature not found in body"]}}]]}}}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters