Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Crypto/Tls/ServerSrpParams.cs
2025-10-09 09:57:24 +09:00

50 lines
1.1 KiB
C#

using System.IO;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Crypto.Tls;
public class ServerSrpParams
{
protected BigInteger m_N;
protected BigInteger m_g;
protected BigInteger m_B;
protected byte[] m_s;
public virtual BigInteger B => m_B;
public virtual BigInteger G => m_g;
public virtual BigInteger N => m_N;
public virtual byte[] S => m_s;
public ServerSrpParams(BigInteger N, BigInteger g, byte[] s, BigInteger B)
{
m_N = N;
m_g = g;
m_s = Arrays.Clone(s);
m_B = B;
}
public virtual void Encode(Stream output)
{
TlsSrpUtilities.WriteSrpParameter(m_N, output);
TlsSrpUtilities.WriteSrpParameter(m_g, output);
TlsUtilities.WriteOpaque8(m_s, output);
TlsSrpUtilities.WriteSrpParameter(m_B, output);
}
public static ServerSrpParams Parse(Stream input)
{
BigInteger n = TlsSrpUtilities.ReadSrpParameter(input);
BigInteger g = TlsSrpUtilities.ReadSrpParameter(input);
byte[] s = TlsUtilities.ReadOpaque8(input);
BigInteger b = TlsSrpUtilities.ReadSrpParameter(input);
return new ServerSrpParams(n, g, s, b);
}
}