jcemapper.java

来自「JAVA 所有包」· Java 代码 · 共 162 行

JAVA
162
字号
/* * Copyright  1999-2004 The Apache Software Foundation. * *  Licensed under the Apache License, Version 2.0 (the "License"); *  you may not use this file except in compliance with the License. *  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * *  Unless required by applicable law or agreed to in writing, software *  distributed under the License is distributed on an "AS IS" BASIS, *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *  See the License for the specific language governing permissions and *  limitations under the License. * */package com.sun.org.apache.xml.internal.security.algorithms;import java.util.HashMap;import java.util.Map;import com.sun.org.apache.xml.internal.security.Init;import com.sun.org.apache.xml.internal.security.utils.XMLUtils;import org.w3c.dom.Element;/** * This class maps algorithm identifier URIs to JAVA JCE class names. * * @author $Author: raul $ */public class JCEMapper {   /** {@link java.util.logging} logging facility */    static java.util.logging.Logger log =         java.util.logging.Logger.getLogger(JCEMapper.class.getName());      private static Map uriToJCEName = new HashMap();      private static Map algorithmsMap = new HashMap();   private static String providerName = null;   /**    * Method init    *    * @param mappingElement    * @throws Exception    */   public static void init(Element mappingElement) throws Exception {      loadAlgorithms((Element)mappingElement.getElementsByTagName("Algorithms").item(0));   }   static void loadAlgorithms( Element algorithmsEl) {       Element[] algorithms = XMLUtils.selectNodes(algorithmsEl.getFirstChild(),Init.CONF_NS,"Algorithm");       for (int i = 0 ;i < algorithms.length ;i ++) {           Element el = algorithms[i];           String id = el.getAttribute("URI");           String jceName = el.getAttribute("JCEName");           uriToJCEName.put(id, jceName);           algorithmsMap.put(id, new Algorithm(el));       }   }   static Algorithm getAlgorithmMapping(String algoURI) {   	   return ((Algorithm)algorithmsMap.get(algoURI));   }   /**    * Method translateURItoJCEID    *    * @param AlgorithmURI    * @return the JCE standard name corresponding to the given URI    *    */   public static String translateURItoJCEID(String AlgorithmURI) {      if (true)          if (log.isLoggable(java.util.logging.Level.FINE))                                     log.log(java.util.logging.Level.FINE, "Request for URI " + AlgorithmURI);      String jceName = (String) uriToJCEName.get(AlgorithmURI);      return jceName;   }   /**    * Method getAlgorithmClassFromURI    * NOTE(Raul Benito) It seems a buggy function the loop doesn't do    * anything??    * @param AlgorithmURI    * @return the class name that implements this algorithm    *    */   public static String getAlgorithmClassFromURI(String AlgorithmURI) {       if (true)           if (log.isLoggable(java.util.logging.Level.FINE))                                     log.log(java.util.logging.Level.FINE, "Request for URI " + AlgorithmURI);       return ((Algorithm) algorithmsMap.get(AlgorithmURI)).algorithmClass;   }   /**    * Returns the keylength in bit for a particular algorithm.    *    * @param AlgorithmURI    * @return The length of the key used in the alogrithm    */   public static int getKeyLengthFromURI(String AlgorithmURI) {       return Integer.parseInt(((Algorithm) algorithmsMap.get(AlgorithmURI)).keyLength);   }   /**    * Method getJCEKeyAlgorithmFromURI    *    * @param AlgorithmURI    * @return The KeyAlgorithm for the given URI.    *    */   public static String getJCEKeyAlgorithmFromURI(String AlgorithmURI) {        return  ((Algorithm) algorithmsMap.get(AlgorithmURI)).requiredKey;   }   /**    * Gets the default Provider for obtaining the security algorithms    * @return the default providerId.      */   public static String getProviderId() {   		return providerName;   }      /**    * Sets the default Provider for obtaining the security algorithms    * @param provider the default providerId.      */   public static void setProviderId(String provider) {   		providerName=provider;   }      /**    * Represents the Algorithm xml element    */      public static class Algorithm {   	    String algorithmClass;   	    String keyLength;            String requiredKey;        /**         * Gets data from element         * @param el         */        public Algorithm(Element el) {        	algorithmClass=el.getAttribute("AlgorithmClass");            keyLength=el.getAttribute("KeyLength");            requiredKey=el.getAttribute("RequiredKey");        }   }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?