...
- user generate RSA key pairs
- dovetail generate a random secret key
- encrypt this report with this secret key by AES256 encryption algorithm
- encrypt this secret key with RSA public key by RSA encryption algorithm
- vendor generate RSA key pairs
- dovetail generate a digest from report with MD5
- encrypt digest with private key from vendor
- send encrypted report, encrypted digest, encrypted key to your target user
- the receiver decrypt the secret key with his own RSA private key to get original secret key
- the receiver decrypt the report with this secret key to get the plain-text report
- the receiver decrypt the digest with vendor's public key to get original digest
- the receiver generate a digest from report with MD5 get new digest
- the receiver check if original digest and new digest are the same with each other