View Javadoc
1   package org.bouncycastle.crypto.generators;
2   
3   /*-
4    * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
5    * SNMP Java Client
6    * ჻჻჻჻჻჻
7    * Copyright 2023 Sentry Software, Westhawk
8    * ჻჻჻჻჻჻
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   *
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Lesser Public License for more details.
18   *
19   * You should have received a copy of the GNU General Lesser Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
23   */
24  
25  import org.bouncycastle.crypto.CipherKeyGenerator;
26  import org.bouncycastle.crypto.params.DESParameters;
27  
28  public class DESKeyGenerator
29      extends CipherKeyGenerator
30  {
31      public byte[] generateKey()
32      {
33          byte[]  newKey = new byte[DESParameters.DES_KEY_LENGTH];
34  
35          do
36          {
37              random.nextBytes(newKey);
38  
39              DESParameters.setOddParity(newKey);
40          }
41          while (DESParameters.isWeakKey(newKey, 0));
42  
43          return newKey;
44      }
45  }