source: trunk/gcc/libjava/java/security/KeyFactorySpi.java

Last change on this file was 2, checked in by bird, 22 years ago

Initial revision

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