12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
- namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
- {
- public class DesKeyGenerator
- : CipherKeyGenerator
- {
- public DesKeyGenerator()
- {
- }
- internal DesKeyGenerator(
- int defaultStrength)
- : base(defaultStrength)
- {
- }
- /**
- * initialise the key generator - if strength is set to zero
- * the key generated will be 64 bits in size, otherwise
- * strength can be 64 or 56 bits (if you don't count the parity bits).
- *
- * @param param the parameters to be used for key generation
- */
- protected override void engineInit(
- KeyGenerationParameters parameters)
- {
- base.engineInit(parameters);
- if (strength == 0 || strength == (56 / 8))
- {
- strength = DesParameters.DesKeyLength;
- }
- else if (strength != DesParameters.DesKeyLength)
- {
- throw new ArgumentException(
- "DES key must be " + (DesParameters.DesKeyLength * 8) + " bits long.");
- }
- }
- protected override byte[] engineGenerateKey()
- {
- byte[] newKey = new byte[DesParameters.DesKeyLength];
- do
- {
- random.NextBytes(newKey);
- DesParameters.SetOddParity(newKey);
- }
- while (DesParameters.IsWeakKey(newKey, 0));
- return newKey;
- }
- }
- }
- #pragma warning restore
- #endif
|