Use BouncyCastle for handling AES on Mono Framework

Mono Framework does not handle CFB-8 AES encryption mode. So now MCC
will now use borrowed code from the BouncyCastle project for handling
AES when running on Mono framework, instead of using a dirty workaround
to try getting Mono encryption working. Regular .NET framework
encryption module will still be used when not running under Mono (eg on
Windows or using Wine)

Should hopefully fix all the issues encountered on Mono including #41
and finally achieve full compatibility of MCC with Mac and Linux.
This commit is contained in:
ORelio 2015-03-19 22:16:42 +01:00
parent 858ad12783
commit c30d3025f7
17 changed files with 2389 additions and 54 deletions

View file

@ -94,6 +94,21 @@
<Compile Include="Commands\Set.cs" />
<Compile Include="ConsoleIcon.cs" />
<Compile Include="ConsoleIO.cs" />
<Compile Include="Crypto\Streams\BouncyAes\AesFastEngine.cs" />
<Compile Include="Crypto\Streams\BouncyAes\BufferedBlockCipher.cs" />
<Compile Include="Crypto\Streams\BouncyAes\BufferedCipherBase.cs" />
<Compile Include="Crypto\Streams\BouncyAes\CfbBlockCipher.cs" />
<Compile Include="Crypto\Streams\BouncyAes\Check.cs" />
<Compile Include="Crypto\Streams\BouncyAes\CipherStream.cs" />
<Compile Include="Crypto\Streams\BouncyAes\CryptoException.cs" />
<Compile Include="Crypto\Streams\BouncyAes\DataLengthException.cs" />
<Compile Include="Crypto\Streams\BouncyAes\IBlockCipher.cs" />
<Compile Include="Crypto\Streams\BouncyAes\IBufferedCipher.cs" />
<Compile Include="Crypto\Streams\BouncyAes\ICipherParameters.cs" />
<Compile Include="Crypto\Streams\BouncyAes\KeyParameter.cs" />
<Compile Include="Crypto\Streams\BouncyAes\OutputLengthException.cs" />
<Compile Include="Crypto\Streams\BouncyAes\Pack.cs" />
<Compile Include="Crypto\Streams\BouncyAes\ParametersWithIV.cs" />
<Compile Include="Crypto\Streams\MonoAesStream.cs" />
<Compile Include="Crypto\Streams\RegularAesStream.cs" />
<Compile Include="Crypto\CryptoHandler.cs" />