From 57d6086ea7de72130babc054e67b2e616788149c Mon Sep 17 00:00:00 2001 From: _ <_@_> Date: Sun, 16 Oct 2022 19:59:06 +0000 Subject: [PATCH] :recycle: refactor: use ptth_diceware for the diceware command in ptth_multi_call_server --- Cargo.lock | 1 + crates/ptth_diceware/Cargo.toml | 1 + crates/ptth_diceware/src/lib.rs | 41 + crates/ptth_diceware/src/main.rs | 40 +- crates/ptth_multi_call_server/Cargo.toml | 1 + crates/ptth_multi_call_server/src/diceware.rs | 23 - .../src/eff_short_wordlist_1.txt | 1253 ----------------- crates/ptth_multi_call_server/src/main.rs | 3 +- 8 files changed, 46 insertions(+), 1317 deletions(-) create mode 100644 crates/ptth_diceware/src/lib.rs delete mode 100644 crates/ptth_multi_call_server/src/diceware.rs delete mode 100644 crates/ptth_multi_call_server/src/eff_short_wordlist_1.txt diff --git a/Cargo.lock b/Cargo.lock index fea7eb0..5be1548 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1251,6 +1251,7 @@ dependencies = [ "ctrlc", "futures-util", "hex", + "ptth_diceware", "ptth_file_server", "ptth_quic", "ptth_server", diff --git a/crates/ptth_diceware/Cargo.toml b/crates/ptth_diceware/Cargo.toml index 271f174..b473cfb 100644 --- a/crates/ptth_diceware/Cargo.toml +++ b/crates/ptth_diceware/Cargo.toml @@ -1,4 +1,5 @@ [package] +description = "A diceware passphrase generator with 1,200 words, only depends on `rand`" name = "ptth_diceware" version = "0.1.0" edition = "2021" diff --git a/crates/ptth_diceware/src/lib.rs b/crates/ptth_diceware/src/lib.rs new file mode 100644 index 0000000..5ec217b --- /dev/null +++ b/crates/ptth_diceware/src/lib.rs @@ -0,0 +1,41 @@ +use rand::Rng; + +pub fn main () { + let diceware = Diceware::default (); + + let random_words: Vec <&str> = (0..8) + .map (|_| diceware.random_word ()) + .collect (); + + let passphrase = random_words.join (" "); + + println! ("{}", passphrase); +} + +pub struct Diceware { + words: Vec , +} + +impl Default for Diceware { + fn default () -> Self + { + let wordlist = include_str! ("eff_short_wordlist_1.txt"); + let words: Vec <_> = wordlist.split ('\n').take (1253).map (str::to_string).collect (); + + assert_eq! (words.len (), 1253); + assert_eq! (words [0], "acid"); + assert_eq! (words [600], "large"); + assert_eq! (words [1252], "zoom"); + + Self { + words, + } + } +} + +impl Diceware { + pub fn random_word (&self) -> &str + { + &self.words [rand::thread_rng ().gen_range (0..self.words.len ())] + } +} diff --git a/crates/ptth_diceware/src/main.rs b/crates/ptth_diceware/src/main.rs index 5ec217b..726479d 100644 --- a/crates/ptth_diceware/src/main.rs +++ b/crates/ptth_diceware/src/main.rs @@ -1,41 +1,3 @@ -use rand::Rng; - pub fn main () { - let diceware = Diceware::default (); - - let random_words: Vec <&str> = (0..8) - .map (|_| diceware.random_word ()) - .collect (); - - let passphrase = random_words.join (" "); - - println! ("{}", passphrase); -} - -pub struct Diceware { - words: Vec , -} - -impl Default for Diceware { - fn default () -> Self - { - let wordlist = include_str! ("eff_short_wordlist_1.txt"); - let words: Vec <_> = wordlist.split ('\n').take (1253).map (str::to_string).collect (); - - assert_eq! (words.len (), 1253); - assert_eq! (words [0], "acid"); - assert_eq! (words [600], "large"); - assert_eq! (words [1252], "zoom"); - - Self { - words, - } - } -} - -impl Diceware { - pub fn random_word (&self) -> &str - { - &self.words [rand::thread_rng ().gen_range (0..self.words.len ())] - } + ptth_diceware::main () } diff --git a/crates/ptth_multi_call_server/Cargo.toml b/crates/ptth_multi_call_server/Cargo.toml index 0ecf898..7db5ed4 100644 --- a/crates/ptth_multi_call_server/Cargo.toml +++ b/crates/ptth_multi_call_server/Cargo.toml @@ -16,6 +16,7 @@ anyhow = "1.0.38" ctrlc = "3.2.1" futures-util = "0.3.9" hex = "0.4.3" +ptth_diceware = { path = "../ptth_diceware" } ptth_file_server = { path = "../ptth_file_server_bin" } ptth_server = { path = "../ptth_server" } ptth_quic = { path = "../ptth_quic" } diff --git a/crates/ptth_multi_call_server/src/diceware.rs b/crates/ptth_multi_call_server/src/diceware.rs deleted file mode 100644 index 741ca27..0000000 --- a/crates/ptth_multi_call_server/src/diceware.rs +++ /dev/null @@ -1,23 +0,0 @@ -use rand::Rng; - -pub fn main () { - let wordlist = include_str! ("eff_short_wordlist_1.txt"); - let words: Vec <_> = wordlist.split ('\n').take (1253).collect (); - - assert_eq! (words.len (), 1253); - assert_eq! (words [0], "acid"); - assert_eq! (words [600], "large"); - assert_eq! (words [1252], "zoom"); - - let mut rng = rand::thread_rng (); - - let random_words: Vec <&str> = (0..8) - .map (|_| { - words [rng.gen_range (0..words.len ())] - }) - .collect (); - - let passphrase = random_words.join (" "); - - println! ("{}", passphrase); -} diff --git a/crates/ptth_multi_call_server/src/eff_short_wordlist_1.txt b/crates/ptth_multi_call_server/src/eff_short_wordlist_1.txt deleted file mode 100644 index 9dfc2ea..0000000 --- a/crates/ptth_multi_call_server/src/eff_short_wordlist_1.txt +++ /dev/null @@ -1,1253 +0,0 @@ -acid -acorn -acre -acts -afar -affix -aged -agent -agile -aging -agony -ahead -aide -aids -aim -ajar -alarm -alias -alibi -alien -alike -alive -aloe -aloft -alone -amend -amino -ample -amuse -anger -angle -ankle -apple -april -apron -aqua -area -arena -argue -arise -armed -armor -army -aroma -array -arson -art -ashen -ashes -atlas -atom -attic -audio -avert -avoid -awake -award -awoke -axis -bacon -badge -bagel -baggy -baked -baker -balmy -banjo -barge -barn -bash -basil -bask -batch -bath -baton -bats -blade -blank -blast -blaze -bleak -blend -bless -blimp -blink -bloat -blob -blog -blot -blunt -blurt -blush -boast -boat -boil -bok -bolt -boney -bonus -bony -book -booth -boots -boss -botch -both -boxer -bribe -brick -bride -brim -bring -brink -brisk -broad -broil -broke -brook -broom -brush -bud -buggy -bulk -bully -bunch -bunny -bunt -busy -buzz -cable -cache -cadet -cage -cake -calm -cameo -canal -candy -cane -canon -cape -card -cargo -carol -carry -carve -case -cash -cause -cedar -chain -chair -chant -chaos -charm -chase -cheer -chef -chess -chest -chew -chief -chili -chill -chip -chomp -chop -chow -chuck -chump -chunk -churn -chute -cider -cinch -city -civic -civil -clad -claim -clamp -clap -clash -clasp -class -claw -clay -clean -clear -cleat -cleft -clerk -click -cling -clink -clip -cloak -clock -clone -cloth -cloud -clump -coach -coast -coat -cod -coil -coke -cola -cold -colt -coma -come -comic -comma -cone -cope -copy -coral -cork -cost -cot -couch -cough -cover -cozy -craft -cramp -crane -crank -crate -crave -crawl -crazy -creme -crepe -crept -crib -cried -crisp -crook -crop -cross -crowd -crown -crumb -crush -crust -cub -cult -cupid -cure -curl -curry -curse -curve -curvy -cushy -cut -cycle -dab -dad -daily -dairy -daisy -dance -darn -dart -dash -data -date -dawn -deaf -deal -dean -debit -debt -debug -decaf -decal -decay -deck -decor -decoy -deed -delay -denim -dense -dent -depth -derby -desk -dial -diary -dice -dig -dill -dime -dimly -diner -dingy -disco -dish -disk -ditch -ditzy -dizzy -dock -dodge -doing -doll -dome -donor -donut -dose -dot -dove -down -doze -drab -drama -drank -draw -dress -dried -drift -drill -drive -drone -droop -drove -drown -drum -dry -duck -duct -dude -dug -duke -duo -dusk -dust -duty -dwell -eagle -early -earth -easel -east -eaten -eats -ebay -ebony -ebook -echo -edge -eel -eject -elbow -elder -elf -elk -elm -elope -elude -elves -email -emit -empty -emu -enter -entry -envoy -equal -erase -error -erupt -essay -etch -evade -even -evict -evil -evoke -exact -exit -fable -faced -fact -fade -fall -false -fancy -fang -fax -feast -feed -femur -fence -fend -ferry -fetch -fever -fiber -fifth -fifty -film -filth -final -finch -fit -five -flag -flaky -flame -flap -flask -fled -flick -fling -flint -flip -flirt -float -flock -flop -floss -flyer -foam -foe -fog -foil -folk -food -fool -found -fox -foyer -frail -frame -fray -fresh -fried -frill -frisk -from -front -frost -froth -frown -froze -fruit -gag -gains -gala -game -gap -gave -gear -gecko -geek -gem -genre -gift -gig -gills -given -giver -glad -glass -glide -gloss -glove -glow -glue -goal -going -golf -gong -good -gooey -goofy -gore -gown -grab -grain -grant -grape -graph -grasp -grass -grave -gravy -gray -green -greet -grew -grid -grief -grill -grip -grit -growl -grub -grunt -guide -gulf -gulp -gummy -guru -gush -gut -guy -habit -half -halo -halt -happy -harm -hash -hasty -hatch -hate -haven -hazel -hazy -heap -heat -heave -hedge -hefty -help -herbs -hers -hub -hug -hula -hull -human -humid -hunk -hunt -hurry -hurt -hush -hut -ice -icing -icon -icy -igloo -image -ion -iron -islam -issue -item -ivory -ivy -jab -jam -jaws -jazz -jeep -jelly -jet -jiffy -job -jog -jolly -jolt -jot -joy -judge -juice -july -jumbo -jump -junky -juror -jury -keep -keg -kept -kick -kilt -king -kite -kitty -kiwi -knee -knelt -koala -ladle -lady -lair -lake -lance -land -lapel -large -lash -lasso -last -latch -late -lazy -left -legal -lemon -lend -lens -lent -level -lever -lid -life -lift -lilac -lily -limb -limes -line -lint -lion -lip -list -lived -liver -lunar -lunch -lung -lurch -lure -lurk -lying -lyric -mace -maker -malt -mango -manor -many -map -march -mardi -marry -mash -match -mate -math -mocha -mold -mom -moody -mop -morse -most -motor -motto -mount -mouse -mousy -mouth -move -movie -mower -mud -mug -mulch -mule -mull -mumbo -mummy -mural -muse -music -musky -mute -nacho -nail -name -nanny -nap -navy -near -neat -neon -nerd -nest -net -next -niece -ninth -nutty -oak -oasis -oat -ocean -oil -old -olive -omen -onion -only -ooze -opal -open -opera -opt -otter -ouch -ounce -outer -oval -oven -owl -ozone -pace -pager -palm -panda -panic -pants -panty -paper -park -party -pasta -patch -path -patio -payer -pecan -penny -pep -perch -perky -perm -pest -petal -petri -petty -photo -plank -plant -plaza -plead -plot -plow -pluck -plug -plus -poach -pod -poem -poet -pogo -point -poise -poker -polar -polio -polka -polo -pond -pony -poppy -poser -pout -power -prank -press -print -prior -prism -prize -prong -proof -props -prude -prune -pry -pug -pull -pulp -pulse -puma -punch -punk -pupil -puppy -purr -purse -push -putt -quack -quake -query -quiet -quill -quilt -quit -quota -quote -rabid -race -radar -radio -raft -rage -raid -rail -rake -rally -ramp -ranch -range -rank -rant -rash -raven -reach -react -ream -rebel -recap -relax -relay -relic -remix -repay -repel -reply -rerun -reset -rhyme -rice -rich -ride -rigid -rigor -rinse -riot -ripen -rise -risk -ritzy -rival -river -roast -robe -robin -rock -rogue -roman -romp -rope -rover -royal -ruby -rug -ruin -rule -runny -rush -rust -rut -sadly -sage -said -saint -salad -salon -salsa -salt -same -sandy -santa -satin -sauna -saved -savor -sax -say -scale -scan -scare -scarf -scary -scoff -scold -scoop -scoot -scope -score -scorn -scout -scowl -scrap -scrub -scuba -scuff -sect -sedan -self -send -sepia -serve -set -seven -shack -shade -shady -shaft -shaky -sham -shape -share -sharp -shed -sheep -sheet -shelf -shell -shine -shiny -ship -shirt -shock -shop -shore -shout -shove -shown -showy -shred -shrug -shun -shush -shut -shy -sift -silk -silly -silo -sip -siren -sixth -size -skate -skew -skid -skier -skies -skip -skirt -skit -sky -slab -slack -slain -slam -slang -slash -slate -slaw -sled -sleek -sleep -sleet -slept -slice -slick -slimy -sling -slip -slit -slob -slot -slug -slum -slush -small -smash -smell -smile -smirk -smog -snack -snap -snare -snarl -sneak -sneer -sniff -snore -snort -snout -snowy -snub -speak -speed -spend -spent -spew -spied -spill -spiny -spoil -spoke -spoof -spool -spoon -sport -spot -spout -spray -spree -spur -squad -squat -squid -stack -staff -stage -stain -stall -stamp -stand -stank -stark -start -stash -state -stays -steam -steep -stem -step -stew -stick -sting -stir -stock -stole -stomp -stony -stood -stool -stoop -stop -storm -stout -stove -straw -stray -strut -stuck -stud -stuff -stump -stung -stunt -suds -sugar -sulk -surf -sushi -swab -swan -swarm -sway -swear -sweat -sweep -swell -swept -swim -swing -swipe -swirl -swoop -swore -syrup -tacky -taco -tag -take -tall -talon -tamer -tank -taper -taps -tarot -tart -task -taste -tasty -taunt -thank -thaw -theft -theme -thing -think -thong -thorn -those -thud -thumb -thump -thus -tiara -tidal -tidy -tiger -tile -tilt -tint -tiny -trace -track -trade -train -trait -trap -trash -tray -treat -tree -trek -trend -trial -tribe -trick -trio -trout -truce -truck -trunk -try -tug -tulip -turf -tusk -tutor -tutu -tux -tweak -tweet -twice -twine -twins -twirl -twist -uncle -uncut -undo -unify -union -unit -untie -upon -upper -urban -used -user -usher -utter -value -vapor -vegan -venue -verse -vest -veto -vice -video -view -viral -virus -visa -visor -vocal -voice -void -volt -voter -vowel -wad -wafer -wager -wages -wagon -wake -walk -wand -wasp -watch -water -wavy -wheat -whiff -whole -whoop -wick -widen -widow -width -wife -wifi -wilt -wind -wing -wink -wipe -wired -wiry -wise -wish -wispy -wok -wolf -wool -woozy -word -work -worry -wound -woven -wrath -wreck -wrist -xerox -yahoo -yam -yard -year -yeast -yelp -yield -yo-yo -yodel -yoga -yoyo -zebra -zero -zesty -zippy -zone -zoom diff --git a/crates/ptth_multi_call_server/src/main.rs b/crates/ptth_multi_call_server/src/main.rs index 5dd35ea..3d494b9 100644 --- a/crates/ptth_multi_call_server/src/main.rs +++ b/crates/ptth_multi_call_server/src/main.rs @@ -5,7 +5,6 @@ use std::{ use tokio::sync::watch; -mod diceware; mod download; mod ulid; @@ -30,7 +29,7 @@ async fn main () -> anyhow::Result <()> { let (subcommand, args) = parse_args (&args)?; match subcommand { Diceware => { - diceware::main (); + ptth_diceware::main (); Ok (()) }, Download => download::main (args).await,