Difference between revisions of "ICP custody with seed phrase and air-gapped machine"
From Internet Computer Wiki
Diego.prats (talk | contribs) |
Diego.prats (talk | contribs) |
||
Line 10: | Line 10: | ||
#keysmith | #keysmith | ||
− | ## | + | ##https://github.com/dfinity/keysmith keysmith |
− | ##You will use this generate important artifacts like `seed phrase` and `private key`s | + | ##You will use this to generate important artifacts like `seed phrase` and `private key`s |
#openSSSL | #openSSSL | ||
− | + | ##[https://wiki.openssl.org/index.php/Binaries](https://wiki.openssl.org/index.php/Binaries) | |
− | + | ##required by quill` | |
#quill | #quill | ||
− | + | ##https://github.com/dfinity/quill | |
− | + | ##you will use this to craft messages like "create neuron" for the Internet Computer | |
− | + | ##You can install it by downloading the binary for your operating system or by cloning and compiling the code | |
− | + | ##note that once installed, the command to execute is `target/release/quill` | |
− | # | + | #qrencode |
− | + | ##https://github.com/fukuchi/libqrencode | |
− | + | ##Generates QR codes for bridging the air gap | |
− | + | ##Tip: if you have Homebrew, you can install via `brew install qrencode` | |
− | + | #jq | |
− | # | + | ##https://github.com/stedolan/jq |
− | + | ##Required for creating multiple QR codes | |
− | + | ##Tip: if you have Homebrew, you can install via `brew install jq` | |
− | |||
#Copy and paste the following bash script into a file named `quill-qr.sh`: | #Copy and paste the following bash script into a file named `quill-qr.sh`: | ||
Warning: Only tested on MacOSX and Linux. | Warning: Only tested on MacOSX and Linux. | ||
− | + | bash | |
− | #!/usr/bin/env bash | + | #!/usr/bin/env bash |
− | URL=https://p5deo-6aaaa-aaaab-aaaxq-cai.raw.ic0.app | + | URL=https://p5deo-6aaaa-aaaab-aaaxq-cai.raw.ic0.app |
− | IFS=$'\n' read -r -d '' -a messages < <( cat - | jq -M 'if . | type != "array" then [.] else . end' | jq -rcM .[] && printf '\0' ) | + | IFS=$'\n' read -r -d '' -a messages < <( cat - | jq -M 'if . | type != "array" then [.] else . end' | jq -rcM .[] && printf '\0' ) |
+ | for message in "${messages[@]}" | ||
+ | do | ||
+ | echo "$URL/?msg=$(echo "$message" | gzip -c | base64 | tr -d '\n' | sed -e 's/+/%2B/g' -e 's/\//%2F/g' -e 's/=/%3D/g')" | qrencode > qr.png | ||
+ | open qr.png | ||
+ | echo ENTER TO CONTINUE... | ||
+ | read < /dev/tty | ||
+ | clear | ||
+ | done | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Because an '''air-gapped computer''' is not connected to the internet, it can be a bit awkward to install these. The most common way to do it is to download them to a '''networked computer''' and transfer the files to the '''air-gapped computer''' via CD or USB drive. Others install these on a networked computer *and then* air-gap it. | Because an '''air-gapped computer''' is not connected to the internet, it can be a bit awkward to install these. The most common way to do it is to download them to a '''networked computer''' and transfer the files to the '''air-gapped computer''' via CD or USB drive. Others install these on a networked computer *and then* air-gap it. |
Revision as of 01:38, 10 November 2021
Getting your hardware and software ready
What you will need:
- air-gapped computer (not connected to the internet)
- networked smartphone
You will need to install the following into your air-gapped computer:
- keysmith
- https://github.com/dfinity/keysmith keysmith
- You will use this to generate important artifacts like `seed phrase` and `private key`s
- openSSSL
- [1](https://wiki.openssl.org/index.php/Binaries)
- required by quill`
- quill
- https://github.com/dfinity/quill
- you will use this to craft messages like "create neuron" for the Internet Computer
- You can install it by downloading the binary for your operating system or by cloning and compiling the code
- note that once installed, the command to execute is `target/release/quill`
- qrencode
- https://github.com/fukuchi/libqrencode
- Generates QR codes for bridging the air gap
- Tip: if you have Homebrew, you can install via `brew install qrencode`
- jq
- https://github.com/stedolan/jq
- Required for creating multiple QR codes
- Tip: if you have Homebrew, you can install via `brew install jq`
- Copy and paste the following bash script into a file named `quill-qr.sh`:
Warning: Only tested on MacOSX and Linux.
bash #!/usr/bin/env bash URL=https://p5deo-6aaaa-aaaab-aaaxq-cai.raw.ic0.app IFS=$'\n' read -r -d -a messages < <( cat - | jq -M 'if . | type != "array" then [.] else . end' | jq -rcM .[] && printf '\0' ) for message in "${messages[@]}" do echo "$URL/?msg=$(echo "$message" | gzip -c | base64 | tr -d '\n' | sed -e 's/+/%2B/g' -e 's/\//%2F/g' -e 's/=/%3D/g')" | qrencode > qr.png open qr.png echo ENTER TO CONTINUE... read < /dev/tty clear done
Because an air-gapped computer is not connected to the internet, it can be a bit awkward to install these. The most common way to do it is to download them to a networked computer and transfer the files to the air-gapped computer via CD or USB drive. Others install these on a networked computer *and then* air-gap it.