3.0 KiB
3.0 KiB
public contract
A public contract is the information a user publish to allow anybody to send him encrypted files. Of course the public contract contains the user public key but it contains much more.
The contract itself does not need to be sign. The signature is level of complexity above the public contract
---
# example of a contract
name: john dear
organizarion: JohnDeer corporation
email: johndear@johndeer.co
url: "the url where to fiofbnd an exact copy of the contract"
root_url: "the url where to find the most up to date version of the contract"
accepted_hashs:
- sha512 # first choice
- sha256 # second choice
accepted_block_cypher:
- aes # first choice
- 3des # second choice
accepted_modes:
- ofb # first choice
- cbc # second choice
signatures_required: yes
rsa_public_keys:
-
n: "hexadecimal n"
e: 3424
public key
Note that any private key are a public key.
private key
cypher format
We use the .filou file extension for the encrypted file. A .filou is nothing
else than a zip file containing the following shit.
- a
data.encryptedcontaining the encrypted data - a
meta_data.ymlfile containing the meta data of the encrypted file- symetric encryption algorithm
- mode
- encrypted symetric key
- hash of the encrypted data (always use full for validation)
- a 'signature' file with the signature of the
meta_data.ymlfile func (this *RsaSha512) encrypt() ([]byte, error) {}
_____________________________________________________________________________
|
| Envelop: zip file, no compression, no encryption
| ________________________________________________________________________
| |
| | Paiload key: cyphered by target pulic key
| |________________________________________________________________________
|
| _________________________________________________________________________
| |
| | Envelop meta data: encryption type, mode, Paiload signature (yaml), IV,..
| |__________________________________________________________________________
|
| __________________________________________________________________________
| |
| | Paiload: Zip file, no compression, symetrcally encrypted
| | _____________________________________________________________________
| | |
| | | paiload intern metadata: Data signature, sender, message ...
| | |______________________________________________________________________
| |
| | _______________________________________________________________________
| | |
| | | Data: Can be anything. But for file and folders, it will be zipped
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |____________________________________________________________________
| |
| |_________________________________________________________________________
|
|______________________________________________________________________________