encrypt38 1.1.7

Command line tool to encrypt and decrypt bitcoin private keys with bip-0038 standard.
Documentation
encrypt38
=========

**Command line tool to encrypt and decrypt bitcoin private keys with
[bip-0038](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki) standard.**

## Basic usage

```console
$ encrypt38 -p Satoshi KwYgW8gcxj1JWJXhPSu4Fqwzfhp5Yfi42mdYmMa4XqK7NJxXUSK7
6PYLtMnXvfG3oJde97zRyLYFZCYizPU5T3LwgdYJz1fRhh16bU7u6PPmY7
```

```console
$ encrypt38 -p Satoshi 6PYLtMnXvfG3oJde97zRyLYFZCYizPU5T3LwgdYJz1fRhh16bU7u6PPmY7
09c2686880095b1a4c249ee3ac4eea8a014f11e6f986d0b5025ac1f39afbd9ae
KwYgW8gcxj1JWJXhPSu4Fqwzfhp5Yfi42mdYmMa4XqK7NJxXUSK7
```

## Disclaimer

* **Don't trust, verify**

    Compare the results of this tool with others. Verify the implementation (and the tests).
 Decrypt immediately after an encryption to check the passphrase you *typed* was the one you
 *wanted*.
**Use at your won risk.**

* **Not recommended**

    Use this tool only to decrypt keys you already have. The method of keeping private keys
 encrypted with bip-0038 standard is [not recommended]https://youtu.be/MbwLVok4gWA?t=2462 anymore
 (use [mnemonic]https://crates.io/crates/mnemonic39 instead).

## Features

* **Address**

    This tool show the respective address of a decrypted private key in the legacy, segwit-nested
 and segwit-native formats according to the version prefix of the encrypted private key.

* **Custom separator**

    Customization of the default separator of information when decrypting.

* **Decryption**

    Insert an encrypted private key `6P...` and passphrase do show the private key represented in
 hexadecimal and the respective address, public key and wif keys.

* **Encryption**

    Insert a private key in the form of hexadecimal numbers or wif key and passphrase to show the
 encrypted private key.

* **Generation (elliptic curve multiplication method)**

    Insert a passphrase to create an encrypted private key using pseudo-random number generation and
 elliptic curve multiplication.

* **Uncompressed address**

    This tool is capable of resulting in uncompressed address (mainly for decryption and retro
 compatibility, *not recommended*).

## Help

```shell
Insert encrypted, hexadecimal or wif private key and passphrase to decrypt or
encrypt accordingly. Insert only passphrase to create an encrypted private key
using elliptic curve multiplication (and pseudo-random number generation).

Usage: encrypt38 [OPTIONS] -p <passphrase> [PRIVATE_KEY]

Arguments:
  [PRIVATE_KEY]  Hexadecimal, wif or encrypted private key

  Options:
    -s <separator>       Specify character (or string) to separate verbose result
    -p <passphrase>      Used to encrypt and decrypt the private key (required)
    -u, --uncompressed   Encrypted private key to generate uncompressed address
    -v, --verbose        Show possible address and public key when decrypting
    -h, --help           Print help
    -V, --version        Print version
```

## Installation

You have to install [rust](https://www.rust-lang.org/tools/install) and a
 [linker](https://gcc.gnu.org/wiki/InstallingGCC) if you don't already have them.

```shell
$ cargo install encrypt38
```