View Javadoc
1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements. See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership. The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License. You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied. See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.wss4j.common.derivedKey;
21  
22  import org.apache.wss4j.common.ext.WSSecurityException;
23  
24  public final class AlgoFactory {
25  
26      private AlgoFactory() {
27          // Complete
28      }
29  
30      /**
31       * This gives a DerivationAlgorithm instance from the default set of algorithms provided
32       *
33       * @param algorithm The algorithm identifier
34       * @return A derivation algorithm
35       * @throws WSSecurityException If the specified algorithm is not available
36       *                               in default implementations
37       */
38      public static DerivationAlgorithm getInstance(String algorithm) throws WSSecurityException {
39          if (ConversationConstants.DerivationAlgorithm.P_SHA_1_2005_12.equals(algorithm)
40              || ConversationConstants.DerivationAlgorithm.P_SHA_1.equals(algorithm)) {
41              return new P_SHA1();
42          } else {
43              throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE,
44                                            "unknownAlgorithm", new Object[] {algorithm});
45          }
46      }
47  
48  }