feat: add tiny encrypt spec v1.1

This commit is contained in:
2023-02-12 21:23:47 +08:00
parent 84748768e1
commit a83e4674ad

37
TinyEncryptSpecV1.1.md Normal file
View File

@@ -0,0 +1,37 @@
File ext: `*.tinyenc`
File format:
```text
[TAG; 2 bytes; short; BE; Always 1]
[LENGTH; 4 bytes; int; BE]
[META; LENGTH bytes]
[ENCRYPTED_DATA; n bytes; AES/GCM]
```
Meta format:
| Field | Type | Comment |
|---------|---------|---------------------------------------------|
| version | String | Constant value: `1.1` |
| 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 | Deprecated PGP Publickey Encrypted DataKey |
| pgpFingerprint | String | Deprecated Hex(Sha256(PGP Publickey)) |
| envelop | String | Deprecated KMS Encrypted DataKey |
| envelops | Envelop[] | Envelop Array |
| nonce | byte[] | GCM Nonce |
| fileLength | Long | File Length |
| fileLastModified | Long | File Last Modified |
| compress | Boolean | Compress or not |
Envelop format:
| Field | Type | Comment |
|--------------|--------|-------------------|
| type | String | `kms`, `pgp`, ... |
| kid | String | Key ID |
| encryptedKey | String | Encrypted Key |