Overview Package Class Use Source Tree Index Deprecated About
GNU Classpath (0.95)
Frames | No Frames

Source for java.security.KeyFactorySpi

 1:  /* KeyFactorySpi.java --- Key Factory Service Provider Interface
 2:  Copyright (C) 1999, 2004 Free Software Foundation, Inc.
 3: 
 4: This file is part of GNU Classpath.
 5: 
 6: GNU Classpath is free software; you can redistribute it and/or modify
 7: it under the terms of the GNU General Public License as published by
 8: the Free Software Foundation; either version 2, or (at your option)
 9: any later version.
 10: 
 11: GNU Classpath is distributed in the hope that it will be useful, but
 12: WITHOUT ANY WARRANTY; without even the implied warranty of
 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 14: General Public License for more details.
 15: 
 16: You should have received a copy of the GNU General Public License
 17: along with GNU Classpath; see the file COPYING. If not, write to the
 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 19: 02110-1301 USA.
 20: 
 21: Linking this library statically or dynamically with other modules is
 22: making a combined work based on this library. Thus, the terms and
 23: conditions of the GNU General Public License cover the whole
 24: combination.
 25: 
 26: As a special exception, the copyright holders of this library give you
 27: permission to link this library with independent modules to produce an
 28: executable, regardless of the license terms of these independent
 29: modules, and to copy and distribute the resulting executable under
 30: terms of your choice, provided that you also meet, for each linked
 31: independent module, the terms and conditions of the license of that
 32: module. An independent module is a module which is not derived from
 33: or based on this library. If you modify this library, you may extend
 34: this exception to your version of the library, but you are not
 35: obligated to do so. If you do not wish to do so, delete this
 36: exception statement from your version. */
 37: 
 38: 
 39:  package java.security;
 40: 
 41:  import java.security.spec.InvalidKeySpecException;
 42:  import java.security.spec.KeySpec;
 43: 
 44:  /**
 45:  * KeyFactorySpi is the Service Provider Interface (SPI) for the 
 46:  * KeyFactory class. This is the interface for providers to 
 47:  * supply to implement a key factory for an algorithm.
 48:  *
 49:  * Key factories are used to convert keys (opaque cryptographic 
 50:  * keys of type Key) into key specifications (transparent 
 51:  * representations of the underlying key material).
 52:  *
 53:  * Key factories are bi-directional. They allow a key class 
 54:  * to be converted into a key specification (key material) and
 55:  * back again.
 56:  *
 57:  * For example DSA public keys can be specified as 
 58:  * DSAPublicKeySpec or X509EncodedKeySpec. The key factory
 59:  * translate these key specifications. 
 60:  *
 61:  * @since JDK 1.2
 62:  * @author Mark Benvenuto
 63:  */
 64:  public abstract class KeyFactorySpi
 65: {
 66:  /**
 67:  * Constucts a new KeyFactorySpi.
 68:  */
 69:  public KeyFactorySpi()
 70:  {
 71:  }
 72: 
 73:  /**
 74:  * Generates a public key from the provided key specification.
 75:  *
 76:  * @param keySpec key specification
 77:  *
 78:  * @return the public key
 79:  *
 80:  * @throws InvalidKeySpecException invalid key specification for
 81:  * this key factory to produce a public key
 82:  */
 83:  protected abstract PublicKey engineGeneratePublic(KeySpec keySpec)
 84:  throws InvalidKeySpecException;
 85: 
 86: 
 87:  /**
 88:  * Generates a private key from the provided key specification.
 89:  *
 90:  * @param keySpec key specification
 91:  *
 92:  * @return the private key
 93:  *
 94:  * @throws InvalidKeySpecException invalid key specification for
 95:  * this key factory to produce a private key
 96:  */
 97:  protected abstract PrivateKey engineGeneratePrivate(KeySpec keySpec)
 98:  throws InvalidKeySpecException;
 99: 
 100:  /**
 101:  * Returns a key specification for the given key. keySpec 
 102:  * identifies the specification class to return the key 
 103:  * material in.
 104:  *
 105:  * @param key the key
 106:  * @param keySpec the specification class to return the 
 107:  * key material in.
 108:  *
 109:  * @return the key specification in an instance of the requested
 110:  * specification class
 111:  *
 112:  * @throws InvalidKeySpecException the requested key specification
 113:  * is inappropriate for this key or the key is 
 114:  * unrecognized.
 115:  */
 116:  protected abstract <T extends KeySpec> T engineGetKeySpec(Key key,
 117:  Class<T> keySpec)
 118:  throws InvalidKeySpecException;
 119: 
 120: 
 121:  /**
 122:  * Translates the key from an unknown or untrusted provider
 123:  * into a key for this key factory.
 124:  *
 125:  * @param key key from an unknown or untrusted provider
 126:  *
 127:  * @return the translated key
 128:  *
 129:  * @throws InvalidKeyException if the key cannot be 
 130:  * processed by this key factory
 131:  */
 132:  protected abstract Key engineTranslateKey(Key key)
 133:  throws InvalidKeyException;
 134: }
Overview Package Class Use Source Tree Index Deprecated About
GNU Classpath (0.95)

AltStyle によって変換されたページ (->オリジナル) /