Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Utilities/Encoders/Hex.cs
2025-10-09 09:57:24 +09:00

65 lines
1.5 KiB
C#

using System.IO;
namespace Org.BouncyCastle.Utilities.Encoders;
public sealed class Hex
{
private static readonly IEncoder encoder = new HexEncoder();
private Hex()
{
}
public static string ToHexString(byte[] data)
{
return ToHexString(data, 0, data.Length);
}
public static string ToHexString(byte[] data, int off, int length)
{
byte[] bytes = Encode(data, off, length);
return Strings.FromAsciiByteArray(bytes);
}
public static byte[] Encode(byte[] data)
{
return Encode(data, 0, data.Length);
}
public static byte[] Encode(byte[] data, int off, int length)
{
MemoryStream memoryStream = new MemoryStream(length * 2);
encoder.Encode(data, off, length, memoryStream);
return memoryStream.ToArray();
}
public static int Encode(byte[] data, Stream outStream)
{
return encoder.Encode(data, 0, data.Length, outStream);
}
public static int Encode(byte[] data, int off, int length, Stream outStream)
{
return encoder.Encode(data, off, length, outStream);
}
public static byte[] Decode(byte[] data)
{
MemoryStream memoryStream = new MemoryStream((data.Length + 1) / 2);
encoder.Decode(data, 0, data.Length, memoryStream);
return memoryStream.ToArray();
}
public static byte[] Decode(string data)
{
MemoryStream memoryStream = new MemoryStream((data.Length + 1) / 2);
encoder.DecodeString(data, memoryStream);
return memoryStream.ToArray();
}
public static int Decode(string data, Stream outStream)
{
return encoder.DecodeString(data, outStream);
}
}