/* $Id: IKeystoreManager.java 988245 2010-08-23 18:39:35Z kwright $ */ /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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 org.apache.manifoldcf.connectorcommon.interfaces; import org.apache.manifoldcf.core.interfaces.*; import java.io.*; /** This interface describes a class that manages keys and certificates in a secure manner. * It's built on top of the JDK 1.4+ JSSE integration, and provides all the necessary logic * to work well within the ManifoldCF java environment. */ public interface IKeystoreManager extends ISSLSocketFactoryProducer { public static final String _rcsid = "@(#)$Id: IKeystoreManager.java 988245 2010-08-23 18:39:35Z kwright $"; /** Get a unique hashstring for this keystore. The hashcode depends only on the certificates * in the store. *@return the hash string for this keystore. */ public String getHashString() throws ManifoldCFException; /** Grab a list of the aliases in the key store. *@return the list, as a string array. */ public String[] getContents() throws ManifoldCFException; /** For an alias, get some descriptive information from the object in the keystore. *@param alias is the alias name. *@return a description of what's in the alias. */ public String getDescription(String alias) throws ManifoldCFException; /** Import a certificate or key into the list. The data must be added as binary. *@param alias is the name of the certificate. *@param certData is the binary data for the certificate. */ public void importCertificate(String alias, InputStream certData) throws ManifoldCFException; /** Remove a certificate. *@param alias is the name of the certificate to remove. */ public void remove(String alias) throws ManifoldCFException; /** Convert to a base64 string. *@return the base64-encoded string. This differs every time it is called, and thus * CANNOT be used for hashing. */ public String getString() throws ManifoldCFException; /** Read a certificate from the keystore. */ public java.security.cert.Certificate getCertificate(String alias) throws ManifoldCFException; /** Add a certificate to the keystore. */ public void addCertificate(String alias, java.security.cert.Certificate certificate) throws ManifoldCFException; }