Home » geronimo-2.2-source-release » org.apache.geronimo.crypto.crypto.params » [javadoc | source]

    1   /**
    2    *  Licensed to the Apache Software Foundation (ASF) under one or more
    3    *  contributor license agreements.  See the NOTICE file distributed with
    4    *  this work for additional information regarding copyright ownership.
    5    *  The ASF licenses this file to You under the Apache License, Version 2.0
    6    *  (the "License"); you may not use this file except in compliance with
    7    *  the License.  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    *  Unless required by applicable law or agreed to in writing, software
   12    *  distributed under the License is distributed on an "AS IS" BASIS,
   13    *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    *  See the License for the specific language governing permissions and
   15    *  limitations under the License.
   16    */
   17   
   18   package org.apache.geronimo.crypto.crypto.params;
   19   
   20   public class DESedeParameters
   21       extends DESParameters
   22   {
   23       /*
   24        * DES-EDE Key length in bytes.
   25        */
   26       static public final int DES_EDE_KEY_LENGTH = 24;
   27   
   28       public DESedeParameters(
   29           byte[]  key)
   30       {
   31           super(key);
   32   
   33           if (isWeakKey(key, 0, key.length))
   34           {
   35               throw new IllegalArgumentException("attempt to create weak DESede key");
   36           }
   37       }
   38   
   39       /**
   40        * return true if the passed in key is a DES-EDE weak key.
   41        *
   42        * @param key bytes making up the key
   43        * @param offset offset into the byte array the key starts at
   44        * @param length number of bytes making up the key
   45        */
   46       public static boolean isWeakKey(
   47           byte[]  key,
   48           int     offset,
   49           int     length)
   50       {
   51           for (int i = offset; i < length; i += DES_KEY_LENGTH)
   52           {
   53               if (DESParameters.isWeakKey(key, i))
   54               {
   55                   return true;
   56               }
   57           }
   58   
   59           return false;
   60       }
   61   
   62       /**
   63        * return true if the passed in key is a DES-EDE weak key.
   64        *
   65        * @param key bytes making up the key
   66        * @param offset offset into the byte array the key starts at
   67        */
   68       public static boolean isWeakKey(
   69           byte[]  key,
   70           int     offset)
   71       {
   72           return isWeakKey(key, offset, key.length - offset);
   73       }
   74   }

Home » geronimo-2.2-source-release » org.apache.geronimo.crypto.crypto.params » [javadoc | source]