The code is a concurrent file downloader in Go that splits a file into multiple parts, downloads them in parallel, and assembles the final file, with support for Etag validation to ensure file integrity.
MIT License
1
stars
0
forks
source link
Implemented HMAC Authentication in CBC Mode for Encryption Package. #133
After encryption, an HMAC of the cipher-text has been appended to the encrypted file, this implementation will not only enhance the security of the encryption mechanism but also align our cryptography practices with industry standards.
During decryption, the HMAC of the ciphertext is verified before proceeding with the decryption, implementing this fix will prevent attacks since all altered messages take the same amount time to produce a response.
If the HMAC verification fails during decryption, an appropriate error is thrown, indicating potential tampering. This enhance the application security posture providing alert mechanism if an attack is carried over.
Unit tests were added/modified to ensure the new HMAC functionality works as expected and maintains the integrity and authenticity of the encrypted data. The implementation of these tests ensure the application functions correctly and meet the requirements of the system.
After encryption, an HMAC of the cipher-text has been appended to the encrypted file, this implementation will not only enhance the security of the encryption mechanism but also align our cryptography practices with industry standards.
During decryption, the HMAC of the ciphertext is verified before proceeding with the decryption, implementing this fix will prevent attacks since all altered messages take the same amount time to produce a response.
If the HMAC verification fails during decryption, an appropriate error is thrown, indicating potential tampering. This enhance the application security posture providing alert mechanism if an attack is carried over.
Unit tests were added/modified to ensure the new HMAC functionality works as expected and maintains the integrity and authenticity of the encrypted data. The implementation of these tests ensure the application functions correctly and meet the requirements of the system.