Browse Source

register native rc4

pull/2865/head
Student Main 5 years ago
parent
commit
5280c580d0
2 changed files with 20 additions and 4 deletions
  1. +6
    -0
      shadowsocks-csharp/Encryption/EncryptorFactory.cs
  2. +14
    -4
      shadowsocks-csharp/Encryption/Stream/StreamNativeEncryptor.cs

+ 6
- 0
shadowsocks-csharp/Encryption/EncryptorFactory.cs View File

@@ -28,6 +28,12 @@ namespace Shadowsocks.Encryption
}
// XXX: sequence matters, OpenSSL > Sodium > MbedTLS
foreach (string method in StreamNativeEncryptor.SupportedCiphers())
{
if (!_registeredEncryptors.ContainsKey(method))
_registeredEncryptors.Add(method, typeof(StreamNativeEncryptor));
}
foreach (string method in StreamOpenSSLEncryptor.SupportedCiphers())
{
if (!_registeredEncryptors.ContainsKey(method))


+ 14
- 4
shadowsocks-csharp/Encryption/Stream/StreamNativeEncryptor.cs View File

@@ -49,12 +49,22 @@ namespace Shadowsocks.Encryption.Stream
Array.Copy(t, outbuf, length);
}

private static readonly Dictionary<string, EncryptorInfo> _ciphers = new Dictionary<string, EncryptorInfo>
{
{ "rc4", new EncryptorInfo("RC4", 16, 16, 1) },
{ "rc4-md5", new EncryptorInfo("RC4", 16, 16, 1) },
// it's using ivLen=16, not compatible
//{ "chacha20-ietf", new EncryptorInfo("chacha20", 32, 12, CIPHER_CHACHA20_IETF) }
};

public static IEnumerable<string> SupportedCiphers()
{
return _ciphers.Keys;
}

protected override Dictionary<string, EncryptorInfo> getCiphers()
{
return new Dictionary<string, EncryptorInfo>()
{
{ "rc4-md5", new EncryptorInfo("rc4", 16, 16, 1) }
};
return _ciphers;
}

class Context


Loading…
Cancel
Save