Commit graph

364 commits

Author SHA1 Message Date
ckolivas
ae63349e3c We do need to seek to read the MD5 correctly on very small files so support seeking to end and then seek to the md5 start. 2011-03-17 11:53:29 +11:00
ckolivas
660243b8dc Pad out first block if less than CBC_LEN and encrypting or else encryption will fail. 2011-03-17 11:19:34 +11:00
ckolivas
0fd18f27f5 Remove redundant code and check return value of fgets. 2011-03-17 09:54:50 +11:00
Con Kolivas
4d72e6d765 Apply fixes so that ciphertext matches. Patch courtesy of Serge Belyshev. 2011-03-17 07:03:40 +11:00
Con Kolivas
76280ffec5 Mlock ivec for it will hold the injection vector. 2011-03-17 00:25:15 +11:00
Con Kolivas
a7468ce6e4 Fail if block to encrypt ends up being less than one full block for now, and tidy up code. 2011-03-16 23:13:09 +11:00
Con Kolivas
c41cfe9e83 Some decompression code needs more room so simply allocate u_len for s_buf. 2011-03-16 21:48:21 +11:00
Con Kolivas
5fd7c82e1f Implement ciphertext stealing to not have to pad compressed blocks courtesy of Serge Belyshev who saved me hours of debugging thanks! 2011-03-16 21:24:05 +11:00
Con Kolivas
f758773cd0 Fix one minor leak. 2011-03-16 13:29:47 +11:00
Con Kolivas
57944b1d5c Zero, unlock and free ram more strictly. 2011-03-16 12:38:10 +11:00
Con Kolivas
b302e6b9ad Better make length a long long int in aes_crypt_cbc just in case. 2011-03-16 12:11:22 +11:00
Con Kolivas
7e71d8689f Put carriage returns in right place after password prompts. 2011-03-16 11:10:46 +11:00
Con Kolivas
928a0a098a Consolidate padded length throughout. 2011-03-16 10:29:16 +11:00
Con Kolivas
bedea4dbec Consolidate cbc padding into a macro. 2011-03-16 10:17:48 +11:00
Con Kolivas
ddcc45ebf0 Revert "aes_crypt_cbc always returns zero so ignore its return value."
This reverts commit 4314970b0d.

Oops, it can return invalid length.
2011-03-16 10:00:20 +11:00
Con Kolivas
2d2a9bc1e9 We're freeing the wrong buffer by mistake should decompression fail. 2011-03-16 09:50:30 +11:00
Con Kolivas
4314970b0d aes_crypt_cbc always returns zero so ignore its return value. 2011-03-16 08:39:05 +11:00
Con Kolivas
519123966a total_read field is no longer used. 2011-03-16 08:32:16 +11:00
Con Kolivas
e1af8fb0c0 Remove unused functions from aes.c and sha4.c 2011-03-16 00:51:28 +11:00
Con Kolivas
5da0633893 aes_crypt_cbc will allow you to work on the same buffer, so don't bother allocating a separate buffer.
Allocate slightly more on the buffer that might be used for encryption rather than reallocing.
2011-03-16 00:46:39 +11:00
Con Kolivas
f61632670e Encrypt the md5 value as well to make the file unidentifiable. 2011-03-16 00:29:10 +11:00
Con Kolivas
bf1c1ababc Support correct seeking when doing get_fileinfo on encrypted archives. 2011-03-16 00:04:44 +11:00
Con Kolivas
c5938c6a8b Implement the actual aes cbc encryption and decryption. 2011-03-15 23:52:39 +11:00
Con Kolivas
acb023988f Generate sha512 hash and hash iv required to encrypt based on password, timestamp, loops and random salt. 2011-03-15 21:18:29 +11:00
Con Kolivas
bc86829763 Modify aes and sha from polar to build into lrzip. 2011-03-15 20:22:26 +11:00
Con Kolivas
ff4b8303a7 Import aes and sha2 libraries from polarssl code. 2011-03-15 20:07:15 +11:00
Con Kolivas
412cf013c4 Implement passphrase input. 2011-03-15 16:32:32 +11:00
Con Kolivas
202d972a6c Add encryption -e option and flag encryption with a control flag, removing encrypt field. 2011-03-15 15:04:58 +11:00
Con Kolivas
65f901a83c Get the seconds, salt and encryption loop data before compressing.
Store seconds in only 5 bytes which is enough for 400 years, leaving more room for random data.
2011-03-15 14:41:47 +11:00
Con Kolivas
6a903eff8d Convert the usecs field to a dedicated salt one which has 6 random bytes and 2 encoded loops bytes. 2011-03-15 13:14:27 +11:00
Con Kolivas
0ffa041f36 Add function to get a stream of random numbers into a buffer from /dev/urandom if possible, and falling back to random() if not. 2011-03-15 12:56:23 +11:00
ckolivas
e26d0d1381 Clear the temporary infile where possible as well when we have falen back to it. 2011-03-15 11:27:07 +11:00
ckolivas
65a681a254 Relative offset is not required in tmp inbuf, it can be safely zeroed. 2011-03-15 11:21:26 +11:00
ckolivas
cb1f630fe0 Tidy. 2011-03-15 10:41:17 +11:00
ckolivas
091909b552 Refuse to compress a file smaller than a minimum size. 2011-03-15 10:40:14 +11:00
ckolivas
fca5d4232c Refuse to perform file info from STDIN. 2011-03-15 09:56:45 +11:00
Con Kolivas
8a83741c32 Clear tmpinbuf between chunks. 2011-03-14 22:03:13 +11:00
Con Kolivas
3a8c0b6689 Remove seeks that aren't required and don't work on tmp input buffers.
Clean up open_stream_in.
2011-03-14 21:51:27 +11:00
Con Kolivas
c832e80085 More infrastructure to read from temporary buffers on stdin decompression. 2011-03-14 21:19:57 +11:00
Con Kolivas
36e09f206e Begin massive read changes to support using temporary file for STDIN. 2011-03-14 20:22:45 +11:00
Con Kolivas
91b8382214 Read magic specially when decompressing from STDIN. 2011-03-14 18:16:14 +11:00
Con Kolivas
d56c826725 Add fd_in field to struct rzip_control. 2011-03-14 14:58:41 +11:00
Con Kolivas
00be150cfb Add flag tests for TMP_INBUF. 2011-03-14 14:56:59 +11:00
Con Kolivas
684959efed Add fields for temporary input buffer and clamp memory accordingly in preparation. 2011-03-14 14:47:26 +11:00
Con Kolivas
5f7a03932b Calculate the total expected size progressively and show it when it's not known. 2011-03-14 13:32:36 +11:00
Con Kolivas
dc360b52dc Update message when dumping buffer and make it maxverbose only. 2011-03-14 12:54:40 +11:00
Con Kolivas
9e772d3140 Make ALL decompression use temporary in-ram buffer whenever possible. 2011-03-14 12:48:40 +11:00
Con Kolivas
27d7c2a031 Tidy. 2011-03-14 12:23:12 +11:00
Con Kolivas
0fe3213a47 Write to physical files if we cannot fit the decompression in ram. 2011-03-14 12:15:54 +11:00
Con Kolivas
aeefba2190 Allocate slightly more so we can cope when the buffer overflows and fall back to a real temporary file. 2011-03-14 11:37:56 +11:00