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
898 B
C#
43 lines
898 B
C#
using System;
|
|
|
|
using Org.BouncyCastle.Crypto;
|
|
|
|
namespace Org.BouncyCastle.Crypto.Parameters
|
|
{
|
|
public class KeyParameter
|
|
: ICipherParameters
|
|
{
|
|
private readonly byte[] key;
|
|
|
|
public KeyParameter(
|
|
byte[] key)
|
|
{
|
|
if (key == null)
|
|
throw new ArgumentNullException("key");
|
|
|
|
this.key = (byte[]) key.Clone();
|
|
}
|
|
|
|
public KeyParameter(
|
|
byte[] key,
|
|
int keyOff,
|
|
int keyLen)
|
|
{
|
|
if (key == null)
|
|
throw new ArgumentNullException("key");
|
|
if (keyOff < 0 || keyOff > key.Length)
|
|
throw new ArgumentOutOfRangeException("keyOff");
|
|
if (keyLen < 0 || (keyOff + keyLen) > key.Length)
|
|
throw new ArgumentOutOfRangeException("keyLen");
|
|
|
|
this.key = new byte[keyLen];
|
|
Array.Copy(key, keyOff, this.key, 0, keyLen);
|
|
}
|
|
|
|
public byte[] GetKey()
|
|
{
|
|
return (byte[]) key.Clone();
|
|
}
|
|
}
|
|
|
|
}
|