init commit

This commit is contained in:
2025-10-09 09:57:24 +09:00
commit 4d551bd74f
6636 changed files with 1218703 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
using Org.BouncyCastle.Crypto.Agreement.Srp;
using Org.BouncyCastle.Crypto.Macs;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Crypto.Tls;
public class SimulatedTlsSrpIdentityManager : TlsSrpIdentityManager
{
private static readonly byte[] PREFIX_PASSWORD = Strings.ToByteArray("password");
private static readonly byte[] PREFIX_SALT = Strings.ToByteArray("salt");
protected readonly Srp6GroupParameters mGroup;
protected readonly Srp6VerifierGenerator mVerifierGenerator;
protected readonly IMac mMac;
public static SimulatedTlsSrpIdentityManager GetRfc5054Default(Srp6GroupParameters group, byte[] seedKey)
{
Srp6VerifierGenerator srp6VerifierGenerator = new Srp6VerifierGenerator();
srp6VerifierGenerator.Init(group, TlsUtilities.CreateHash(2));
HMac hMac = new HMac(TlsUtilities.CreateHash(2));
hMac.Init(new KeyParameter(seedKey));
return new SimulatedTlsSrpIdentityManager(group, srp6VerifierGenerator, hMac);
}
public SimulatedTlsSrpIdentityManager(Srp6GroupParameters group, Srp6VerifierGenerator verifierGenerator, IMac mac)
{
mGroup = group;
mVerifierGenerator = verifierGenerator;
mMac = mac;
}
public virtual TlsSrpLoginParameters GetLoginParameters(byte[] identity)
{
mMac.BlockUpdate(PREFIX_SALT, 0, PREFIX_SALT.Length);
mMac.BlockUpdate(identity, 0, identity.Length);
byte[] array = new byte[mMac.GetMacSize()];
mMac.DoFinal(array, 0);
mMac.BlockUpdate(PREFIX_PASSWORD, 0, PREFIX_PASSWORD.Length);
mMac.BlockUpdate(identity, 0, identity.Length);
byte[] array2 = new byte[mMac.GetMacSize()];
mMac.DoFinal(array2, 0);
BigInteger verifier = mVerifierGenerator.GenerateVerifier(array, identity, array2);
return new TlsSrpLoginParameters(mGroup, verifier, array);
}
}