@@ -24,26 +24,27 @@ public void EncryptBytes(string inputFile, string outFile, byte[] passwordBytes)
2424 // Derives a key using PBKDF2 from the password and a salts
2525 var key = new Rfc2898DeriveBytes ( passwordBytes , saltBytes , 100000 ) ;
2626
27-
2827 // Set actual IV and key
2928 aes . Key = key . GetBytes ( aes . KeySize / 8 ) ;
3029 aes . IV = key . GetBytes ( aes . BlockSize / 8 ) ;
3130
32- long len = new FileInfo ( inputFile ) . Length ;
33-
3431 using ( var outFileStream = File . Create ( outFile ) )
3532 using ( var cs = new CryptoStream ( outFileStream , aes . CreateEncryptor ( ) , CryptoStreamMode . Write ) )
36- using ( var inFile = File . OpenRead ( inputFile ) )
33+ using ( var inFile = new BinaryReader ( File . OpenRead ( inputFile ) ) )
3734 {
38-
39- using ( var br = new BinaryReader ( inFile ) )
35+ while ( true )
4036 {
41-
42- sbyte data ;
43- while ( ( data = ( sbyte ) inFile . ReadByte ( ) ) != - 1 )
44- cs . WriteByte ( ( byte ) data ) ;
45-
37+ try
38+ {
39+ var data = ( byte ) inFile . ReadByte ( ) ;
40+ cs . WriteByte ( data ) ;
41+ }
42+ catch ( EndOfStreamException )
43+ {
44+ break ;
45+ }
4646 }
47+
4748 }
4849
4950 }
@@ -74,23 +75,24 @@ public bool DecryptBytes(string inputFile, string outFile, byte[] passwordBytes)
7475 aes . Key = key . GetBytes ( aes . KeySize / 8 ) ;
7576 aes . IV = key . GetBytes ( aes . BlockSize / 8 ) ;
7677
77- long len = new FileInfo ( inputFile ) . Length ;
78-
7978 using ( var outFileStream = File . Create ( outFile ) )
80- using ( var cs = new CryptoStream ( outFileStream , aes . CreateEncryptor ( ) , CryptoStreamMode . Write ) )
81- using ( var inFile = File . OpenRead ( inputFile ) )
79+ using ( var cs = new CryptoStream ( outFileStream , aes . CreateDecryptor ( ) , CryptoStreamMode . Write ) )
80+ using ( var inFile = new BinaryReader ( File . OpenRead ( inputFile ) ) )
8281 {
83-
84- using ( var br = new BinaryReader ( inFile ) )
82+ while ( true )
8583 {
86-
87- sbyte data ;
88- while ( ( data = ( sbyte ) inFile . ReadByte ( ) ) != - 1 )
89- cs . WriteByte ( ( byte ) data ) ;
90-
84+ try
85+ {
86+ var data = ( byte ) inFile . ReadByte ( ) ;
87+ cs . WriteByte ( data ) ;
88+ }
89+ catch ( EndOfStreamException )
90+ {
91+ break ;
92+ }
9193 }
92- }
9394
95+ }
9496 }
9597 }
9698
0 commit comments