Files
tiny-encrypt-java/README.md
2023-02-10 21:51:08 +08:00

98 lines
2.9 KiB
Markdown

# tiny-encrypt-java
Tiny encrypt implemented by Java
Debug logging:
```shell
$ java -jar -Dcommons.log.debug=true tiny-encrypt.jar ...
```
Encrypt file:
```shell
$ tiny-encrypt -e test.txt
[INFO] Start processing file: test.txt, 1 of 1
[INFO] Get data key from kms, key name: prod_ec_key, with sign: false ...
Encrypting, Processed: 12, Speed: 2.93KB/s
[INFO] Encrypt file success: test.txt
```
> Skip envelop data key: `--skip-envelop`
Show encrypted file info:
```shell
$ tiny-encrypt -I test.txt.tinyenc
[INFO] Tiny Encrypt File Info
File..............: test.txt.tinyenc
File size.........: 12 byte(s)
Enc file summary..: Version: 1.0, Agent: TinyEncrypt v0.5.1@MacOS
Last modified.....: Fri Feb 10 00:50:07 CST 2023
Enc file created..: Fri Feb 10 01:16:12 CST 2023
Envelops..........: KMS: YES, PGP: YES
PGP fingerprint...: de5a99c239a82adf039982cb6319abcb95f44cfc76a5027ae6f7819cfc5fde7c
Encrypted comment.: NO
```
Decrypt file:
```shell
$ tiny-encrypt -d test.txt.tinyenc
[INFO] Start processing file: test.txt.tinyenc, 1 of 1
[INFO] Start: /Users/hatterjiang/.cargo/bin/card-cli
[INFO] Finished command
[INFO] Decrypt local private key success!
[INFO] Decrypt data key ...
Decrypting, Processed: 12, Speed: 3.91KB/s
[INFO] Decrypt file success: test.txt.tinyenc
```
Decrypt file with OpenPGP card:
```shell
$ tiny-encrypt -d --pgp test.txt.tinyenc
[INFO] Start processing file: test.txt.tinyenc, 1 of 1
Input PGP user PIN:
[INFO] Start: /Users/hatterjiang/.cargo/bin/card-cli
[INFO] Finished command
Decrypting, Processed: 12, Speed: 2.93KB/s
[INFO] Decrypt file success: test.txt.tinyenc
```
Use alias:
```shell
alias tiny-encrypt='java -jar ~/bin/tiny-encrypt.jar'
alias tiny-encrypt-debug='java -jar -Dcommons.log.debug=true ~/bin/tiny-encrypt.jar'
```
File ext: `*.tinyenc`
File format:
```text
[TAG; 2 bytes; short; BE]
[LENGTH; 4 bytes; int; BE]
[META; LENGTH bytes]
[ENCRYPTED_DATA; n bytes; AES/GCM]
```
Meta format:
| Field | Type | Comment |
|---------|---------|---------------------------------------------|
| version | String | Constant value: `1.0` |
| created | Long | Created time, Unix Epoch |
| userAgent | String | User Agent, e.g. `TinyEncrypt v0.5.1@MacOS` |
| comment | String | Plain text comment |
| encryptedComment | String | Encrypted comment |
| pgpEnvelop | String | PGP Publickey Encrypted DataKey |
| pgpFingerprint | String | Hex(Sha256(PGP Publickey)) |
| envelop | String | KMS Encrypted DataKey |
| nonce | byte[] | GCM Nonce |
| fileLength | Long | File Length |
| fileLastModified | Long | File Last Modified |
| compress | Boolean | Compress or not |