123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
- namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
- {
- /**
- * a Diffie-Hellman key pair generator.
- *
- * This generates keys consistent for use in the MTI/A0 key agreement protocol
- * as described in "Handbook of Applied Cryptography", Pages 516-519.
- */
- public class DHKeyPairGenerator
- : IAsymmetricCipherKeyPairGenerator
- {
- private DHKeyGenerationParameters param;
- public virtual void Init(
- KeyGenerationParameters parameters)
- {
- this.param = (DHKeyGenerationParameters)parameters;
- }
- public virtual AsymmetricCipherKeyPair GenerateKeyPair()
- {
- DHKeyGeneratorHelper helper = DHKeyGeneratorHelper.Instance;
- DHParameters dhp = param.Parameters;
- BigInteger x = helper.CalculatePrivate(dhp, param.Random);
- BigInteger y = helper.CalculatePublic(dhp, x);
- return new AsymmetricCipherKeyPair(
- new DHPublicKeyParameters(y, dhp),
- new DHPrivateKeyParameters(x, dhp));
- }
- }
- }
- #pragma warning restore
- #endif
|