nym-hole is a bash script that allows you to securely send files over a mixnet from one point to another with zero knowledge. It's built on top of Croc and Magic-wormhole, and additionally uses the Nym mixnet over a socks5 proxy.
- Croc https://github.com/schollz/croc (follow the instructions if using MacOS - if on Linux, it will download and install it automatically after consent)
- nym-socks5-client (you have to have nym-socks5-client running or the binaries in your PATH at least, else the script can't run at this early stage)
- Linux recommended (install with brew on MacOS as per instructions from Croc)
bash nym-hole.sh [OPTIONS] FILE
Options:
--relay RELAY: Use a custom relay for croc.
--test: Check if croc and nym-socks5-client are installed and running.
--install: Install nym-socks5-client.
--service-provider SP: Use a custom service provider for nym.
--dry-test: Run croc without --socks and --relay flags.
--help: Print a help message.
![image](https://private-user-images.githubusercontent.com/33793809/249349079-947d5b89-453e-4dfd-b491-73c211b5f081.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ0NDYwMjIsIm5iZiI6MTcyNDQ0NTcyMiwicGF0aCI6Ii8zMzc5MzgwOS8yNDkzNDkwNzktOTQ3ZDViODktNDUzZS00ZGZkLWI0OTEtNzNjMjExYjVmMDgxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDIwNDIwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxZGQyOGViNDc2ZDk5ZjI3MGRjNWVjNDg5M2ZmNzFlN2NmNjc2YjI5NTI4NjA1MWJhNmIxNjNhOTk1NzQxMDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.MfIBdsrRJVBA84udNr6CcFUuDbo-hevT5KDKl0eUkYY)
![image](https://private-user-images.githubusercontent.com/33793809/249348921-bfcb6edb-63bb-4e63-9f3b-afdc49b6a93a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ0NDYwMjIsIm5iZiI6MTcyNDQ0NTcyMiwicGF0aCI6Ii8zMzc5MzgwOS8yNDkzNDg5MjEtYmZjYjZlZGItNjNiYi00ZTYzLTlmM2ItYWZkYzQ5YjZhOTNhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDIwNDIwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYyNzdkMjM5YmFlNjhjMDUwZWJjMDJiMWIzMDkyYWY4ZTE5NDhmZGM3YmM1ZWFiZDViMWVjNDQzOGE5Nzg4MzgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.xgQE6xfg4e2hsXDSs1RN9JCPrSux7Zpo9FjobatrS5E)
- this is a very hacky and early version and is not properly tested.
- if you want the recipient to receive the file, they need to add
--socks5 "127.0.0.1:1080"
after you send them the output when sending a file. It looks like this:croc --socks5 "127.0.0.1:1080" --relay 37.235.105.22:9009 8361-picnic-spirit-native
- NYM Mixnet has its limitations and stuff might not work, so make sure you first check if you can run your own RELAY and SERVICE-PROVIDER before you make any complaints.
- NYM service-provider has to have the
--relay
IP addr or hostname inallowed.list
otherwise it will obviously not work unless you are running an open-proxy
https://github.com/schollz/croc Thanks for a great tool and alternative to magic-wormhole !!!
Many thanks to all those who have contributed to Croc:
@warner for the idea @tscholl2 for the encryption gists @skorokithakis for code on proxying two connections And to everyone who has made pull requests: @maximbaz, @meyermarcel, @Girbons, @techtide, @heymatthew, @Lunsford94, @lummie, @jesuiscamille, @threefjord, @marcossegovia, @csleong98, @afotescu, @callmefever, @El-JojA, @anatolyyyyyy, @goggle, @smileboywtu, @nicolashardy, @fbartels, @rkuprov, @hreese, @xenrox, and @Ipar.
nym-hole is distributed under the MIT license. For more details, see the LICENSE file in the repository.