Verification Algorithms

Verification Algorithms are hashing algorithms that are generated and sent with every message from pychat. In order to use verification algorithms, the -v flag must be set on all clients along with the same verification algorithm being selected on each system. When each message is sent, a hash will be generated and appended to the beginning of each message. Upon receival, pychat will decrypt and verify the message against the hashing algorithm. If the hashing fails a warning message will be printed to console before the original message is printed. Regardless of whether the hash is valid or not, the original message will always be printed.

Below lists all options that are currently implemented in pychat

MD2

Verify message integrity using MD2 hashing algorithm

Example

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v MD2

MD4

Verify message integrity using MD4 hashing algorithm

Example

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v MD4

MD5

Verify message integrity using MD5 hashing algorithm

Example

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v MD5

SHA1

Verify message integrity using SHA1 hashing algorithm

Example

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v SHA1

SHA224

Verify message integrity using SHA224 hashing algorithm

Example

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v SHA224

SHA256

Verify message integrity using SHA256 hashing algorithm

Example

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v SHA256

SHA384

Verify message integrity using SHA384 hashing algorithm

Example

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v SHA384

SHA512

Verify message integrity using SHA512 hashing algorithm

Example

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v SHA512

HMAC

Verify message integrity using MAC algorithm. This MAC algorithm incorporates a hashing function and a password to generate a verifiable signature by both parties

Only the -hk parameter listed below is required

Parameter Description
-hk
The shared password used for generating the hash signature
-hm
The hashing mode to be used. Default is SHA1.
Values can be SHA1, SHA224, SHA256, SHA384, SHA512, MD5

Example

Set the hash password to spaghetti and the mode to SHA256

python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -v HMAC -hp spaghetti -hm SHA256