001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)KeyStoreManager.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: /**
030: * KeyStoreManager.java
031: *
032: * SUN PROPRIETARY/CONFIDENTIAL.
033: * This software is the proprietary information of Sun Microsystems, Inc.
034: * Use is subject to license terms.
035: *
036: * Created on October 24, 2004, 12:35 AM
037: */package com.sun.jbi.internal.security;
038:
039: import java.security.cert.CertStore;
040: import java.security.KeyStore;
041: import java.util.Properties;
042: import javax.security.auth.callback.CallbackHandler;
043:
044: /**
045: * A basic KeyStoreManager interface.
046: * @author Sun Microsystems, Inc.
047: */
048: public interface KeyStoreManager extends CallbackHandler {
049:
050: /**
051: * Manager type: Java Standard.
052: */
053: String JAVA_STD = "JavaStandard";
054:
055: /**
056: * Manager type: App Serv Env.
057: */
058: String SJSAS = "SJSAS";
059:
060: /**
061: * Get the KeyStoreManager Name.
062: * @return the name of the KeyStoreManager
063: */
064: String getName();
065:
066: /**
067: * Set the KeyStoreManager Name.
068: * @param name is the name of the KeyStoreManager
069: */
070: void setName(String name);
071:
072: /**
073: * Get the initialized KeyStore instance.
074: * @return a KeyStore instance. This KeyStore has the Private Keys and corresponding
075: * Key Certificates.
076: */
077: KeyStore getKeyStore();
078:
079: /**
080: * Get the initialized TrustStore instance.
081: * @return a TrustStore instance. This KeyStore has the Trusted CA Certificates.
082: */
083: KeyStore getTrustStore();
084:
085: /**
086: * Get the Certificate Store.
087: *
088: * @return a CertificateStore instance, this store has the client certificates which
089: * will be used in verifying a certification path.
090: */
091: CertStore getCertStore();
092:
093: /**
094: * Get the the password required for accessing the KeyStore.
095: * @return the password required for accessing the KeyStore
096: */
097: String getKeyStorePassword();
098:
099: /**
100: * Get the Type String.
101: * In Shasta 1.0 we support "JavaStandard" which encompasses : JKS, PKCS12, JCEKS
102: * and "SJSAS" which implies the Application Server environment.
103: *
104: * @return manager type
105: */
106: String getType();
107:
108: /**
109: * Set the type string.
110: *
111: * @param type is the type.
112: */
113: void setType(String type);
114:
115: /**
116: * Initialize this KeyStore Service.
117: * @param initProperties are the Properties specified for the Service
118: * @throws IllegalStateException if the state of the instance is invalid
119: * after initialization.
120: */
121: void initialize(Properties initProperties)
122: throws IllegalStateException;
123:
124: /**
125: * Reload / Synchronize the Key / Trust Stores.
126: * @throws IllegalStateException If the state of the instance is invalid
127: * after synchronization.
128: */
129: void reload() throws IllegalStateException;
130:
131: }
|