35 lines
606 B
C#
35 lines
606 B
C#
using System;
|
|
|
|
using Org.BouncyCastle.Crypto.Parameters;
|
|
|
|
namespace Org.BouncyCastle.Crypto.Generators
|
|
{
|
|
public class DesKeyGenerator
|
|
: CipherKeyGenerator
|
|
{
|
|
public DesKeyGenerator()
|
|
{
|
|
}
|
|
|
|
internal DesKeyGenerator(
|
|
int defaultStrength)
|
|
: base(defaultStrength)
|
|
{
|
|
}
|
|
|
|
protected override byte[] engineGenerateKey()
|
|
{
|
|
byte[] newKey;
|
|
|
|
do
|
|
{
|
|
newKey = random.GenerateSeed(DesParameters.DesKeyLength);
|
|
DesParameters.SetOddParity(newKey);
|
|
}
|
|
while (DesParameters.IsWeakKey(newKey, 0));
|
|
|
|
return newKey;
|
|
}
|
|
}
|
|
}
|