Skip to content

Commit fedff87

Browse files
committed
updated 4.4
1 parent 8af3b6b commit fedff87

1 file changed

Lines changed: 167 additions & 0 deletions

File tree

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
#!/bin/bash
2+
# 04_4_Creating_New_Editions-SCRIPT.sh
3+
#
4+
# Tests all commands from §4.4, verifying:
5+
# - Removing content from an edition
6+
# - Updating content in an edition
7+
#
8+
# Usage: bash 04_4_Creating_New_Editions-SCRIPT.sh
9+
10+
11+
set -e
12+
13+
echo "=== LEARNING XIDS §4.4: Creating New Editions ==="
14+
15+
# Configuration
16+
17+
# Create output directory
18+
19+
OUTPUT_DIR="output/script-04-3-$(date +%Y%m%d-%H%M%S)"
20+
mkdir -p "$OUTPUT_DIR"
21+
22+
XID="ur:xid/tpsplftpsplotpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoycfaorylftpsplrtpsokseyjoihihjpdpihjtiejljpjkihjnihjtjydpiyjpjljndpieihkojpihkoinihktihjpdpideyeeihehhsieehihemetiyeyehieeeoycfaornlstpsotanshdhdcxhdsfzozcetjkztcmwnvaqzhkdyvlytswpmhttoprrtskioesiyhlkeotjecaknhdoytpsojkjkiaisihjnhsftihjnjojzjlkkihihgmjljzihtpsokscsfdihhsiecxguihiakpjpinjykkcxgdjpjliojphsjnjnihjpoytpsojljkiaisihjnhsftktjljpjejkfgjljptpsojzguinjkjyihjpgujohsiaihjkoycfaorslntpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoytpsojsjpihjzhsjyinjljtjkisinjofwhsjkinjktpsoksiaguihiakpjpinjykkcxiajljzjzhsidjljphsjyinjljtcxjohsjpjyjtihjpcxktisjlcxkoihjpiniyinihiecxiajpihieihjtjyinhsjzjkcxjyisjpjlkpioiscxiajljnjninjydpjpihkoihhsjzcxhsjtiecxihjtiajpkkjojyihiecxjkishsjpinjtiooybetpsokoeydyeyendpdyeedpdyemghehehftehecdpehdyftdydyoytpsojpihjtiejljpjkihjnihjtjyfxjljtjyihksjytpsokshghfihjpiyinihiecxjojpihkoinjlkpjkcxjkihiakpjpinjykkcxihksjoihjpinihjtiaihdwcxktjljpjeihiecxjyjlioihjyisihjpcxjljtcxjkisjljpjycxjojpjlimihiajycxiyjljpcxguinjkjyihjpgujohsiaihjkoytpsojljoihihjpfejtiejljpjkihjnihjtjytpsoksguhgjpinjyihjkcxjkihiakpjpihdwcxktihjzjzdpjyihjkjyihiecxiajlieihcxktinjyiscxiajzihhsjpcxhsjyjyihjtjyinjljtcxjyjlcxjojpinkohsiakkdpjojpihjkihjpkoinjtiocxjohsjyjyihjpjtjkoytpsojoihjtiejljpjkihjnihjtjyguiajljoihtpsoksfeguihiakpjpinjykkcxhsjpiaisinjyihiajykpjpihdwcxiajpkkjojyjliojphsjoisiniacxinjnjojzihjnihjtjyhsjyinjljtdwcxjojpinkohsiakkcxjohsjyjyihjpjtjkoyadtpsojehsjyjyihjkjyhsjyinjljtoyaxtpsotansghlfaohdfznbytwmprtoiegsdekihpltdnrtstcnykzcvaenbkjlpejksbhnatlyontkvotpmosodmfsgajtpmielrlgzowpvevlstveadmknetdrkykbachkindwnrdtisalaltaxoyaylrtpsotansgylftanshflfaohdcxlumegtzorkdntkrolkosmyrffndiwkrofhbblfzerodipahhkkcejtatinbsjtintansgrhdcxlnjzbnfwasfshtfgvehhktdschdwttrtctdepkbyhlhkbdsogwashkgobsqzgwjtlfoycsfplftansfwlrhdghghzceetljywzehjedwzewkaopezocwknhldrqdmystghwtoltyfmcnkpfyrpuocygwpmrlnlmnadfxjorfbyvekepfylwkfmspbktladrtmyrnswbagywlcxdtasplnbreztdawkgycmtyvtdejtplgmosrprocwesmesttdgsjkcsbgzoondwaxtyktglweesgdsnaypddnmhsbsaeytdzsvwfymklrpyeyhddatansfphdcxayhkjpidzehpytiesnkofybgbbinntaezozstbctideyykdsbzylimwsvadplnlaoybwtpsotanshptansfwlrhdcxvyvymhveuyrliodsgmnlgykndtrtpslfkoktoyfheojndnkkmktkwnfejzqzkketgsjtskmujeqduymeahhfsbatbzgdeywtsgrdjejtjtdkglasytzehhtawezshflfaxtansgmgdaekkytjzwmlfhlaomhsagswzaetdhttdoybstpsotansgmhdcxyaflntkectinioyttklocelbmhaseswnoeetdmtprnfmytmyhfghimjzhebnctftoycscstpsojziajljtjyjphsiajydpjeihkkoycsfncsfdoycsfzlftpsotngdgmgwhflfaxhdimutwyskfwihlagwoxhytdrtrngtdwmujobgmsdrfpehdroetibnttndoscydwrhtomkrkknutcfhynntsqzmthtoecaclhkhksgpdhlkpcyfgievwktuepmrtatrpotecsrtkmohdhdfpgltpgykphkknmtcnbapmpdrooxfhwfpklkoeosgapylgdkonwzfpvlremubnztghftgszslslfoycsfylftansfwlrhdrofpmddpengdnsvyhemtgumeteasbsnnrppfdehkdlpdgygoskselrjnfxwzasditypyktvsenonhfdmcsenwknngdcniaahksbzoeaafpbevdcplstefeeezoweprhnkplakipmehassfhkkeimteaholluvladgykerktnfweyeygtrdgtglbzgoglvwwessfdrpuyfrpmtnvsytwtlekshnyafsoeurldgllsaxtlskpyfwhntymwiosphekpprcedefgayhkrninndpdluislnrkzsbahfcflyjkleamonqzmhsrtylfurlfnnsadnbkdtecztkkcegsmhftvebzpkcheegyflwyndmygafxjnbzehgseyensfgwguetdrresayagytsgdhnuorocauouotnrsztswpkrhlfkovwjohddatansfphdcxiaeoceneechesrryihdemdpagepdosuthffwehfyhlvsnetevtchknrsdsgscafzoybwtpsotanshptansfwlrhdcxfekemoathhfhutsfcwjpwdgteyrtgdzenbaoztrslbtpvyjnbdrlsadklnolstfsgsztlfvlisiyaspsdykthsfrtbgdimwmcsaahphlcxhgcsotcnaxbbfrchiohflfaxtansgmgdmwbnhdasimkstyrldmcavolyeykblktsoybstpsotansgmhdcxiyvwcpcptddkeemdwfoylrrnspcttebgsbrnfmoetirfmwehhsrehdpmstdadaytoyaylrtpsotansgylftanshflfaohdcxonbbaxfdchqzlfcptlbbyachdypehyaxtecavlhymnmyceeekotpcamnamguclmotansgrhdcxcsrnchrnrpbsrnuecwaymoihplfnkgrdaxiefgpyidvysecnluhtwlwmpfwndnctlfoycsfplftansfwlrhdghykhlpmwerksnfseslnrpttdiltgotschpttlpacfctimjyykihhtfpteyllolsuesbnyetoxprseskhdykwlwnknstldahehdszefmdtbsdenbtbsndepddrroonbdmhztbapytatykimdvefzkinldpbyhymuwnkbbtvsflgshyzcaaetammwqdfnwlvlpkcmgdkovwesaeaojoaygafmjoynmecklartfghddatansfphdcxjemdmobewtihrohsgaghsglkgepdcmhdflhnamvegwssjzolpsjslesrwypkrydwoybwtpsotanshptansfwlrhdcxveoewfpmhgdywymkjylrndiseoytbdpantgdsrnbkihneoztasgreokecmchrsbtgsiyghclsabalkuywzamidctfsgdnnetihrywzmnhytbsbbnkisgswdlcmvyhflfaxtansgmgdosdrotksvdbtwsvsvevocycxgeuymtwmoybstpsotansgmhdcxrsfpfpfmldltkbsaamecmogabacsjtdedtsshlmdutaoaoylstndserdwdnedwmnoycscstpsoisfwgmhsiekojliaetoycsfncsfgoycfaorylftpsplrtpsokscfhsiaiajlkpjtjydpiajpihieihjtjyinhsjzdpioinjyiskpidoyadtpsojpiyjlhsiyftgwjtjzinjtihfpiaiajlkpjtjyoycfaorsldtpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoytpsojsjkjkisguiniojtinjtiogrihkkjkgogmgstpsotpcxksenisjyjyjojkftdldlhsjoindmioinjyiskpiddmiajljndlkpjkihjpjkdlfwgmhsiekojliaetdljkjkishejkiniojtinjtiohejeihkkjkoytpsojoiyjlhsiyfthsiaiajlkpjtjyglhsjnihtpsoisfwgmhsiekojliaetoytpsojnjkjkisguiniojtinjtiogrihkktpsotansgylftanshftanehsksgdjkjkisdpihieeyececehescxfpfpfpfpfxeoglknhsfxehjzhtfygaehglghfeecfpfpfpfpgafdeceyjlgogmjehkkpjpjtihiygojtjlfgiddnfpgsjpjpfxeedlhdihdngdkpgwgmfxfgkninjlgmfyhfjkgmtansgrhdcxfhtkhnmyoeoyvdvdgolosrpfrosnrsaycmiycelnqdjyjzlplpeykgesmnvwoeimoytpsokscwiyjlhsiyfthsiaiajlkpjtjyguihjpkoiniaihfdjljnihjohsioihtpsotpcxksdkisjyjyjojkftdldlioinjyiskpiddmiajljndlfwgmhsiekojliaetdlfwgmhsiekojliaetoycscwtpsotpcxksdaisjyjyjojkftdldlhsjoindmioinjyiskpiddmiajljndlkpjkihjpjkdlfwgmhsiekojliaetoycseetpsotpcxjpisjyjyjojkftdldlioinjyiskpiddmiajljnoytpsojsjkjkisguiniojtinjtiogrihkkghihksjytpsoksgdjkjkisdpihieeyececehescxfpfpfpfpfxeoglknhsfxehjzhtfygaehglghfeecfpfpfpfpgafdeceyjlgogmjehkkpjpjtihiygojtjlfgiddnfpgsjpjpfxeedlhdihdngdkpgwgmfxfgkninjlgmfyhfjkgmoybetpsokoeydyeyendpdyeedpdyehgheheefteeetdpehdyftdydyoycfaorntpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoyaxtpsotansghtaneidkkaddmdpdpdpdpdpfwfeflgaglcxgugufdcxgugaflglfpghgogmfedpdpdpdpdpbkgoehglgagodyjzfdfpfpfpfpfpgyfpfpfpfygtfpfpfpfpgsiaeogljlgshghfjegtimgoehgtghjefpfpfpfpioiyjthsisgmflgminenkpieecesguihiohfkoeefpkpkpjkgsimesbkieemeedneeecfegahdgwgrisfeglhgksfefpfpfpfpgahthgeceyhthgkskoiaflgofpfpfpfpfpfpfpfpfpfwjtgljlhkghgaehgliofpfpfpfggtfpfpfpfpgsiaeogljlgshghfjebkgtimgoehgtghjefpfpfpfwfphkihjeidkpjofxetihiyiejegejzgmeefdkkjpfyjkksgufljlghgtesdleejofdjegsjkghemdletgriygwhskoisecfgjtkkgmemfwkpgyeedlgwfwbkkkgufxghgrghkkhfenghiheefgeofdknhshfjtdldnjyehgwfyfefwiofsfsbkdpdpdpdpdpfeglfycxgugufdcxgugaflglfpghgogmfedpdpdpdpdpbkoycfaorylftpsplrtpsokscxjojpjlimihiajydpjkinjkjyihjpdpjkjohsiaihjkdpjkihiakpjpihhskpjyisoycfaorslrtpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoytpsoiniajzhsfyinioihjkjytpsotansfphdcxhkrsoyhnoyuodrnsjewsylmybwmouonbtkglbbaxyakilfmnlaptpkjkiepszsdmoycscwtpsoksesisjyjyjojkftdldlioinjyiskpiddmiajljndlguinjkjyihjpgujohsiaihjkdlguihiakpjpihfpkpjyisdlfxgsfpjkdlgmfefpfygtfedmjnieoytpsojziyjlhsiyftgdjpjlimihiajytpsojzguinjkjyihjpgujohsiaihjkoyadtpsojziyjlhsiyftgdjpjlimihiajyoycfaorntpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoyaxtpsotansghlfaohdfzmtiniolbreytcnyncnwmsoeyvtlkwzjzprlupebbbzghdnmnoyprenmdlflucaonsffelpfehkaaiyguzttartsfhdvtwfwdsboxfdlfbtwmwekbimdtemftatmhttbsoyaylrtpsotansgylftanshflfaohdcxplvdotinmnwensttrtlrtiisqzehrltlnlguhdludywzsebztnqdndwztpdazeqdtansgrhdcxfmlpjkhspautsfmwlndrpavobwpyotsazsdidwrnrpcylfintnwtgrnnhdhhpyjpoycscstpsojlhsjyjyihjkjyhsjyinjljtdpjeihkklfoycsfplftansfwlrhdghutjtlbhlwztbrdltsfvotnloutsabzjpnblnloehspbnseaojzceseeshtcxjsaydrltryjsamaaetgmcnctsfkbrhlfwpdtamhnyllbpfkgzeeyamfdgrinesemkpticlhljnvsytykwnfgvdesfyzsadhfesdmrdrthtfygshfvyoskbglgmcnhdhnrttsaogdbwlsmedndtynjzgdbehshlletpdrdtishddatansfphdcxiopakburhprngowmtshlrswzihbytpflgtrootzosfrpnnfprymuveasenotaeadoybwtpsotanshptansfwlrhdcxfpaohdbtndgyvsdnprcejtcwylaartjzdyfddtrosbpfbwsrwnhpmdmnadembdvlgslobdzmlphnvdbdskgyjnluzsgdtatinnjkcmtyylmucadwinjooyeosnylhflfaxtansgmgdstremsfwkisatnrdhlbbmhswdyadbelpoybstpsotansgmhdcxghchykwlghoxpftljectmyyldyamgycwamfwbnsbjelbsshkbzcnuttyrltlwtgmoycsfncsfdoyaxtpsotansghlfaohdfzhdetdtoxemlnrtltcncnpaglvoeynbehnewmbdjtzsperewlhynsisnekgmolrbyhszcwzlfpelafmdwenoswyspetdajsntytdlfepkpkidnswtchhhhhmsztbgtdaarywkylrl"
23+
24+
XID_ID=$(envelope xid id $XID)
25+
PASSWORD="test-password-for-tutorial"
26+
27+
echo ""
28+
echo "Step 1: Find the Object to Remove"
29+
echo "================================="
30+
31+
# No fancy find commands; this is the right edge for the included XID
32+
33+
DEV_EDGE="ur:envelope/lftpsplrtpsokseyjoihihjpdpihjtiejljpjkihjnihjtjydpiyjpjljndpieihkojpihkoinihktihjpdpideyeeihehhsieehihemetiyeyehieeeoycfaornlstpsotanshdhdcxhdsfzozcetjkztcmwnvaqzhkdyvlytswpmhttoprrtskioesiyhlkeotjecaknhdoytpsojkjkiaisihjnhsftihjnjojzjlkkihihgmjljzihtpsokscsfdihhsiecxguihiakpjpinjykkcxgdjpjliojphsjnjnihjpoytpsojljkiaisihjnhsftktjljpjejkfgjljptpsojzguinjkjyihjpgujohsiaihjkoycfaorslntpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoytpsojsjpihjzhsjyinjljtjkisinjofwhsjkinjktpsoksiaguihiakpjpinjykkcxiajljzjzhsidjljphsjyinjljtcxjohsjpjyjtihjpcxktisjlcxkoihjpiniyinihiecxiajpihieihjtjyinhsjzjkcxjyisjpjlkpioiscxiajljnjninjydpjpihkoihhsjzcxhsjtiecxihjtiajpkkjojyihiecxjkishsjpinjtiooybetpsokoeydyeyendpdyeedpdyemghehehftehecdpehdyftdydyoytpsojpihjtiejljpjkihjnihjtjyfxjljtjyihksjytpsokshghfihjpiyinihiecxjojpihkoinjlkpjkcxjkihiakpjpinjykkcxihksjoihjpinihjtiaihdwcxktjljpjeihiecxjyjlioihjyisihjpcxjljtcxjkisjljpjycxjojpjlimihiajycxiyjljpcxguinjkjyihjpgujohsiaihjkoytpsojljoihihjpfejtiejljpjkihjnihjtjytpsoksguhgjpinjyihjkcxjkihiakpjpihdwcxktihjzjzdpjyihjkjyihiecxiajlieihcxktinjyiscxiajzihhsjpcxhsjyjyihjtjyinjljtcxjyjlcxjojpinkohsiakkdpjojpihjkihjpkoinjtiocxjohsjyjyihjpjtjkoytpsojoihjtiejljpjkihjnihjtjyguiajljoihtpsoksfeguihiakpjpinjykkcxhsjpiaisinjyihiajykpjpihdwcxiajpkkjojyjliojphsjoisiniacxinjnjojzihjnihjtjyhsjyinjljtdwcxjojpinkohsiakkcxjohsjyjyihjpjtjkoyadtpsojehsjyjyihjkjyhsjyinjljtoyaxtpsotansghlfaohdfznbytwmprtoiegsdekihpltdnrtstcnykzcvaenbkjlpejksbhnatlyontkvotpmosodmfsgajtpmielrlgzowpvevlstveadmknetdrkykbachkindwnrdtisalaltaxglkbpmcx"
34+
35+
echo ""
36+
echo "Step 2: Remove the Object"
37+
echo "========================="
38+
39+
REDUCED_XID=$(envelope xid edge remove $DEV_EDGE $XID)
40+
41+
if envelope format $REDUCED_XID | grep -q "security expertise"
42+
then
43+
echo "❌ Failed to remove correlatable information"
44+
exit 1;
45+
else
46+
echo "✅ Correlatable information removed"
47+
fi
48+
49+
echo ""
50+
echo "Step 3: Publish Your XID"
51+
echo "========================"
52+
53+
REDUCED_XID=$(envelope xid provenance next \
54+
--password "$PASSWORD" \
55+
--sign inception \
56+
--private encrypt \
57+
--generator encrypt \
58+
--encrypt-password "$PASSWORD" \
59+
"$REDUCED_XID")
60+
PUBLIC_REDUCED_XID=$(envelope xid export --private elide --generator elide "$REDUCED_XID")
61+
62+
echo "$REDUCED_XID" > $OUTPUT_DIR/01-bradvoc8-xid-private-v6.envelope
63+
echo "$PUBLIC_REDUCED_XID" > $OUTPUT_DIR/02-bradvoc8-xid-public-v6.envelope
64+
65+
echo "Public XID with endorsement entirely removed:"
66+
envelope format $PUBLIC_REDUCED_XID
67+
68+
echo ""
69+
echo "Step 4: Check Provenance Marks for Revocation"
70+
echo "============================================="
71+
72+
# Collect two XIDs to compare, the first from the §3.3 output files
73+
74+
XID[0]="ur:xid/tpsplftpsplntpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoycsfzlftpsotngdgmgwhflfaxhdimkscwmkvocnjsswmhkpdstkfhyajzetonlsfxlpsgskltcamefpwsaesptbaakslnamztfhcmfpfylrztndlyftnelkaoflwmbaltzesokbpycnntfxldeecmecttmtjsoedsjywyvyjejzpacfgawdaadsdefljkdtuoldwmjydwsepfnszoperniamumubsteotlgdepmbtcyqzylknhdcxynnyldsrimlgayhszmztlamemymoctdmgutlndtlfxbngttbbsaedsnnhkuemyeooycfaorylftpsplrtpsokseyjoihihjpdpihjtiejljpjkihjnihjtjydpiyjpjljndpieihkojpihkoinihktihjpdpeciehseeihenieecihiyeodyeheseoenoycfaornlstpsotanshdhdcxmshysojlfzoszoceechndploaabafddwgwieinluclrfdezotenlylfmampslsgdoytpsojkjkiaisihjnhsftihjnjojzjlkkihihgmjljzihtpsokscsfdihhsiecxguihiakpjpinjykkcxgdjpjliojphsjnjnihjpoytpsojljkiaisihjnhsftktjljpjejkfgjljptpsojzguinjkjyihjpgujohsiaihjkoyadtpsojehsjyjyihjkjyhsjyinjljtoycfaorslntpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoytpsojsjpihjzhsjyinjljtjkisinjofwhsjkinjktpsoksiaguihiakpjpinjykkcxiajljzjzhsidjljphsjyinjljtcxjohsjpjyjtihjpcxktisjlcxkoihjpiniyinihiecxiajpihieihjtjyinhsjzjkcxjyisjpjlkpioiscxiajljnjninjydpjpihkoihhsjzcxhsjtiecxihjtiajpkkjojyihiecxjkishsjpinjtiooybetpsokoeydyeyendpdyeedpdyemgheheefteceedpehdyftdydyoytpsojpihjtiejljpjkihjnihjtjyfxjljtjyihksjytpsokshghfihjpiyinihiecxjojpihkoinjlkpjkcxjkihiakpjpinjykkcxihksjoihjpinihjtiaihdwcxktjljpjeihiecxjyjlioihjyisihjpcxjljtcxjkisjljpjycxjojpjlimihiajycxiyjljpcxguinjkjyihjpgujohsiaihjkoytpsojljoihihjpfejtiejljpjkihjnihjtjytpsoksguhgjpinjyihjkcxjkihiakpjpihdwcxktihjzjzdpjyihjkjyihiecxiajlieihcxktinjyiscxiajzihhsjpcxhsjyjyihjtjyinjljtcxjyjlcxjojpinkohsiakkdpjojpihjkihjpkoinjtiocxjohsjyjyihjpjtjkoytpsojoihjtiejljpjkihjnihjtjyguiajljoihtpsoksfeguihiakpjpinjykkcxhsjpiaisinjyihiajykpjpihdwcxiajpkkjojyjliojphsjoisiniacxinjnjojzihjnihjtjyhsjyinjljtdwcxjojpinkohsiakkcxjohsjyjyihjpjtjkoyaxtpsotansghlfaohdfziswdwfrpahdrpebwrdgmihbwtlptfxuonbjlwllufhjogylnoyzcihtkkekbghrefyindlosrlcpkbbthsgmfgctnetkonpsinknihltolisjtrkltuytipfayiownadoycfaorylftpsplrtpsokscfhsiaiajlkpjtjydpiajpihieihjtjyinhsjzdpioinjyiskpidoyadtpsojpiyjlhsiyftgwjtjzinjtihfpiaiajlkpjtjyoycfaorsldtpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoytpsojsjkjkisguiniojtinjtiogrihkkjkgogmgstpsotpcxksenisjyjyjojkftdldlhsjoindmioinjyiskpiddmiajljndlkpjkihjpjkdlfwgmhsiekojliaetdljkjkishejkiniojtinjtiohejeihkkjkoytpsojoiyjlhsiyfthsiaiajlkpjtjyglhsjnihtpsoisfwgmhsiekojliaetoytpsojnjkjkisguiniojtinjtiogrihkktpsotansgylftanshftanehsksgdjkjkisdpihieeyececehescxfpfpfpfpfxeoglknhsfxehjzhtfygaehglghfeecfpfpfpfpgafdeceyjlgogmjehkkpjpjtihiygojtjlfgiddnfpgsjpjpfxeedlhdihdngdkpgwgmfxfgkninjlgmfyhfjkgmtansgrhdcxfhtkhnmyoeoyvdvdgolosrpfrosnrsaycmiycelnqdjyjzlplpeykgesmnvwoeimoytpsokscwiyjlhsiyfthsiaiajlkpjtjyguihjpkoiniaihfdjljnihjohsioihtpsotpcxksdkisjyjyjojkftdldlioinjyiskpiddmiajljndlfwgmhsiekojliaetdlfwgmhsiekojliaetoycscwtpsotpcxksdaisjyjyjojkftdldlhsjoindmioinjyiskpiddmiajljndlkpjkihjpjkdlfwgmhsiekojliaetoycseetpsotpcxjpisjyjyjojkftdldlioinjyiskpiddmiajljnoytpsojsjkjkisguiniojtinjtiogrihkkghihksjytpsoksgdjkjkisdpihieeyececehescxfpfpfpfpfxeoglknhsfxehjzhtfygaehglghfeecfpfpfpfpgafdeceyjlgogmjehkkpjpjtihiygojtjlfgiddnfpgsjpjpfxeedlhdihdngdkpgwgmfxfgkninjlgmfyhfjkgmoybetpsokoeydyeyendpdyeedpdyehgheheefteeetdpehdyftdydyoycfaorntpsotanshdhdcxnsvelewdmugsjksomhcsdngumosodnlffnlpcxfeylutcseeluatlyihdphyieadoyaxtpsotansghtaneidkkaddmdpdpdpdpdpfwfeflgaglcxgugufdcxgugaflglfpghgogmfedpdpdpdpdpbkgoehglgagodyjzfdfpfpfpfpfpgyfpfpfpfygtfpfpfpfpgsiaeogljlgshghfjegtimgoehgtghjefpfpfpfpioiyjthsisgmflgminenkpieecesguihiohfkoeefpkpkpjkgsimesbkieemeedneeecfegahdgwgrisfeglhgksfefpfpfpfpgahthgeceyhthgkskoiaflgofpfpfpfpfpfpfpfpfpfwjtgljlhkghgaehgliofpfpfpfggtfpfpfpfpgsiaeogljlgshghfjebkgtimgoehgtghjefpfpfpfwfphkihjeidkpjofxetihiyiejegejzgmeefdkkjpfyjkksgufljlghgtesdleejofdjegsjkghemdletgriygwhskoisecfgjtkkgmemfwkpgyeedlgwfwbkkkgufxghgrghkkhfenghiheefgeofdknhshfjtdldnjyehgwfyfefwiofsfsbkdpdpdpdpdpfeglfycxgugufdcxgugaflglfpghgogmfedpdpdpdpdpbkoyaylrtpsotansgylftanshflfaohdcxplvdotinmnwensttrtlrtiisqzehrltlnlguhdludywzsebztnqdndwztpdazeqdtansgrhdcxfmlpjkhspautsfmwlndrpavobwpyotsazsdidwrnrpcylfintnwtgrnnhdhhpyjpoycscstpsojlhsjyjyihjkjyhsjyinjljtdpjeihkkhdcxietsqzmdvspdbegueedrwthpgdgatdmoqdpmsosggovlfxleyniyvartckfgfxkioycsfncsfdoyaylrtpsotansgylftanshflfaohdcxonbbaxfdchqzlfcptlbbyachdypehyaxtecavlhymnmyceeekotpcamnamguclmotansgrhdcxcsrnchrnrpbsrnuecwaymoihplfnkgrdaxiefgpyidvysecnluhtwlwmpfwndnctoycscstpsoisfwgmhsiekojliaetoycsfncsfghdcxsgykcedadedelsjybejtbbrocsjlghwyaxgahhntsazolyjpbntsdlgspattcxjyoyaxtpsotansghlfaohdfzseknguykwylahdwzbtwkiaeofnktahotdalatpiywsktmeecotfwaomofglkoxguzscwlrlsgwsktsfswzpsmwoltlfdclgmjocadmeodsnnmkfsievavofzbawyuraydttopstn"
75+
XID[1]=$PUBLIC_REDUCED_XID
76+
77+
# Extract their provenance marks
78+
79+
PM[0]=$(envelope xid provenance get ${XID[0]})
80+
PM[1]=$(envelope xid provenance get ${XID[1]})
81+
82+
echo "Comparing marks from two XID editions:"
83+
provenance validate -w ${PM[0]} ${PM[1]}
84+
85+
echo ""
86+
echo "ℹ️ Errors simply tell us that chain is not complete (we don't have all editions)."
87+
echo ""
88+
89+
newseq=0
90+
selectedi=-1
91+
for i in $(seq 0 1)
92+
do
93+
thisseq=$(provenance validate --warn --format json-compact ${PM[$i]} | jq -r ".chains.[0].sequences.[0].end_seq")
94+
if (( $thisseq > $newseq )); then
95+
newseq=$thisseq
96+
selectedi=$i
97+
fi
98+
done
99+
100+
if (( $i >> 0 )); then
101+
echo "✅ Current version of XID is:"
102+
echo ""
103+
envelope format ${XID[$i]}
104+
else
105+
echo "❌ No valid XIDs found"
106+
exit 1;
107+
fi
108+
109+
echo ""
110+
echo "Step 6: Prepare the New Content"
111+
echo "==============================="
112+
113+
REVIEWER_SIGNED_EDGE=ur:envelope/lftpsplrtpsokseyjoihihjpdpihjtiejljpjkihjnihjtjydpiyjpjljndpieihkojpihkoinihktihjpdpeeehiaeshsenieehidehhseyihiyesenoycfaornlstpsotanshdhdcximprmsaylgfwcyjzzcamzmdrbdetjsrngamnbsfptbwtksihrhzonsahuthydwtboytpsojkjkiaisihjnhsftihjnjojzjlkkihihgmjljzihtpsokscsfdihhsiecxguihiakpjpinjykkcxgdjpjliojphsjnjnihjpoytpsojljkiaisihjnhsftktjljpjejkfgjljptpsojzguinjkjyihjpgujohsiaihjkoycfaorslntpsotanshdhdcxhecefsnnionspljpftktetwymnfmcyecveuotktpwenlhyhdpmpykpchcmzchywzoytpsojpihjtiejljpjkihjnihjtjyfxjljtjyihksjytpsoksglhfihjpiyinihiecxjojpihkoinjlkpjkcxihksjoihjpinihjtiaihdwcxktjljpjeihiecxjyjlioihjyisihjpcxjljtcxjkisjljpjycxjojpjlimihiajycxiyjljpcxguinjkjyihjpgujohsiaihjkoybetpsokoeydyeyendpdyeedpdyehghdyetfteyecdpehdyftdydyoytpsojsjpihjzhsjyinjljtjkisinjofwhsjkinjktpsoksiaguihiakpjpinjykkcxiajljzjzhsidjljphsjyinjljtcxjohsjpjyjtihjpcxktisjlcxkoihjpiniyinihiecxiajpihieihjtjyinhsjzjkcxjyisjpjlkpioiscxiajljnjninjydpjpihkoihhsjzcxhsjtiecxihjtiajpkkjojyihiecxjkishsjpinjtiooytpsojljoihihjpfejtiejljpjkihjnihjtjytpsoksguhgjpinjyihjkcxjkihiakpjpihdwcxktihjzjzdpjyihjkjyihiecxiajlieihcxktinjyiscxiajzihhsjpcxhsjyjyihjtjyinjljtcxjyjlcxjojpinkohsiakkdpjojpihjkihjpkoinjtiocxjohsjyjyihjpjtjkoytpsojoihjtiejljpjkihjnihjtjyguiajljoihtpsoksfeguihiakpjpinjykkcxhsjpiaisinjyihiajykpjpihdwcxiajpkkjojyjliojphsjoisiniacxinjnjojzihjnihjtjyhsjyinjljtdwcxjojpinkohsiakkcxjohsjyjyihjpjtjkoyadtpsojehsjyjyihjkjyhsjyinjljtoyaxtpsotansghlfaohdfzbzfslnetykknhplpwmhhcmcnwtfrwftogtrdadjtaxbsjkptmsmesbotldcstngyteisfhrntecemkoxtpueinjtmtfdrtvebwvtasbdcxeclafphthtfylfhgrhlabntabgpsmy
114+
115+
echo "Examining new endorsement:"
116+
envelope format $REVIEWER_SIGNED_EDGE
117+
118+
echo ""
119+
echo "Step 7: Insert New Content"
120+
echo "=========================="
121+
122+
XID_WITH_NEW_EDGE=$(envelope xid edge add \
123+
--verify inception \
124+
$REVIEWER_SIGNED_EDGE $REDUCED_XID)
125+
126+
if envelope format $XID_WITH_NEW_EDGE | grep -q "6ab29708"
127+
then
128+
echo "✅ DevReviewer's new endorsement is present."
129+
else
130+
echo "❌ Failed to remove correlatable information"
131+
exit 1;
132+
fi
133+
134+
if envelope format $XID_WITH_NEW_EDGE | grep -q "security expertise"
135+
then
136+
echo "❌ Endorsement still has correlatable information."
137+
exit 1;
138+
else
139+
echo "✅ Correlatable information is indeed gone"
140+
fi
141+
142+
echo ""
143+
echo "Step 8: Publish Updated XID"
144+
echo "==========================="
145+
146+
XID_WITH_NEW_EDGE=$(envelope xid provenance next \
147+
--password "$PASSWORD" \
148+
--sign inception \
149+
--private encrypt \
150+
--generator encrypt \
151+
--encrypt-password "$PASSWORD" \
152+
"$XID_WITH_NEW_EDGE")
153+
PUBLIC_XID_WITH_NEW_EDGE=$(envelope xid export --private elide --generator elide "$XID_WITH_NEW_EDGE")
154+
155+
echo "$XID_WITH_NEW_EDGE" > $OUTPUT_DIR/03-bradvoc8-xid-private-v7.envelope
156+
echo "$PUBLIC_XID_WITH_NEW_EDGE" > $OUTPUT_DIR/04-bradvoc8-xid-public-v7.envelope
157+
158+
echo ""
159+
echo "==============================="
160+
echo "All Tutorial §4.4 Tests Passed!"
161+
echo "==============================="
162+
echo ""
163+
echo "Output files saved to: $OUTPUT_DIR/"
164+
ls -la "$OUTPUT_DIR/"
165+
166+
167+

0 commit comments

Comments
 (0)