mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
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.
43 lines
948 B
C#
43 lines
948 B
C#
using System;
|
|
|
|
namespace Org.BouncyCastle.Crypto.Parameters
|
|
{
|
|
public class ParametersWithIV
|
|
: ICipherParameters
|
|
{
|
|
private readonly ICipherParameters parameters;
|
|
private readonly byte[] iv;
|
|
|
|
public ParametersWithIV(
|
|
ICipherParameters parameters,
|
|
byte[] iv)
|
|
: this(parameters, iv, 0, iv.Length)
|
|
{
|
|
}
|
|
|
|
public ParametersWithIV(
|
|
ICipherParameters parameters,
|
|
byte[] iv,
|
|
int ivOff,
|
|
int ivLen)
|
|
{
|
|
// NOTE: 'parameters' may be null to imply key re-use
|
|
if (iv == null)
|
|
throw new ArgumentNullException("iv");
|
|
|
|
this.parameters = parameters;
|
|
this.iv = new byte[ivLen];
|
|
Array.Copy(iv, ivOff, this.iv, 0, ivLen);
|
|
}
|
|
|
|
public byte[] GetIV()
|
|
{
|
|
return (byte[]) iv.Clone();
|
|
}
|
|
|
|
public ICipherParameters Parameters
|
|
{
|
|
get { return parameters; }
|
|
}
|
|
}
|
|
}
|