gnu.javax.crypto.jce.keyring

Class GnuKeyring


public class GnuKeyring
extends KeyStoreSpi

An Adapter over a pair of one private, and one public keyrings to emulate the keystore operations.

Method Summary

Enumeration<E>
engineAliases()
Generates a list of all the aliases in the keystore.
boolean
engineContainsAlias(String alias)
Determines if the keystore contains the specified alias.
void
engineDeleteEntry(String alias)
Deletes the entry for the specified entry.
Certificate
engineGetCertificate(String alias)
Gets a Certificate for the specified alias.
String
engineGetCertificateAlias(Certificate cert)
Certificate[]
engineGetCertificateChain(String alias)
Gets a Certificate chain for the specified alias.
Date
engineGetCreationDate(String alias)
Gets entry creation date for the specified alias.
Key
engineGetKey(String alias, char[] password)
Returns the key associated with given alias using the supplied password.
boolean
engineIsCertificateEntry(String alias)
Determines if the keystore contains a certificate entry for the specified alias.
boolean
engineIsKeyEntry(String alias)
Determines if the keystore contains a key entry for the specified alias.
void
engineLoad(InputStream in, char[] password)
Loads the keystore from the specified input stream and it uses the specified password to check for integrity if supplied.
void
engineSetCertificateEntry(String alias, Certificate cert)
void
engineSetKeyEntry(String alias, byte[] key, Certificate[] chain)
void
engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
int
engineSize()
Returns the number of entries in the keystore.
void
engineStore(OutputStream out, char[] password)
Stores the keystore in the specified output stream and it uses the specified key it keep it secure.

Methods inherited from class java.security.KeyStoreSpi

engineAliases, engineContainsAlias, engineDeleteEntry, engineGetCertificate, engineGetCertificateAlias, engineGetCertificateChain, engineGetCreationDate, engineGetKey, engineIsCertificateEntry, engineIsKeyEntry, engineLoad, engineSetCertificateEntry, engineSetKeyEntry, engineSetKeyEntry, engineSize, engineStore

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Details

engineAliases

public Enumeration<E> engineAliases()
Generates a list of all the aliases in the keystore.
Overrides:
engineAliases in interface KeyStoreSpi
Returns:
an Enumeration of the aliases

engineContainsAlias

public boolean engineContainsAlias(String alias)
Determines if the keystore contains the specified alias.
Overrides:
engineContainsAlias in interface KeyStoreSpi
Parameters:
alias - the alias name
Returns:
true if it contains the alias, false otherwise

engineDeleteEntry

public void engineDeleteEntry(String alias)
Deletes the entry for the specified entry.
Overrides:
engineDeleteEntry in interface KeyStoreSpi
Parameters:
alias - the alias name

engineGetCertificate

public Certificate engineGetCertificate(String alias)
Gets a Certificate for the specified alias. If there is a trusted certificate entry then that is returned. it there is a key entry with a certificate chain then the first certificate is return or else null.
Overrides:
engineGetCertificate in interface KeyStoreSpi
Parameters:
alias - the alias name
Returns:
a Certificate or null if the alias does not exist or there is no certificate for the alias

engineGetCertificateAlias

public String engineGetCertificateAlias(Certificate cert)

engineGetCertificateChain

public Certificate[] engineGetCertificateChain(String alias)
Gets a Certificate chain for the specified alias.
Overrides:
engineGetCertificateChain in interface KeyStoreSpi
Parameters:
alias - the alias name
Returns:
a chain of Certificates ( ordered from the user's certificate to the Certificate Authority's ) or null if the alias does not exist or there is no certificate chain for the alias ( the alias refers to a trusted certificate entry or there is no entry).

engineGetCreationDate

public Date engineGetCreationDate(String alias)
Gets entry creation date for the specified alias.
Overrides:
engineGetCreationDate in interface KeyStoreSpi
Parameters:
alias - the alias name

engineGetKey

public Key engineGetKey(String alias,
                        char[] password)
            throws UnrecoverableKeyException
Returns the key associated with given alias using the supplied password.
Overrides:
engineGetKey in interface KeyStoreSpi
Parameters:
alias - an alias for the key to get
password - password to access key with
Returns:
the requested key, or null otherwise
Throws:
UnrecoverableKeyException - key cannot be reocovered (wrong password).

engineIsCertificateEntry

public boolean engineIsCertificateEntry(String alias)
Determines if the keystore contains a certificate entry for the specified alias.
Overrides:
engineIsCertificateEntry in interface KeyStoreSpi
Parameters:
alias - the alias name
Returns:
true if it is a certificate entry, false otherwise

engineIsKeyEntry

public boolean engineIsKeyEntry(String alias)
Determines if the keystore contains a key entry for the specified alias.
Overrides:
engineIsKeyEntry in interface KeyStoreSpi
Parameters:
alias - the alias name
Returns:
true if it is a key entry, false otherwise

engineLoad

public void engineLoad(InputStream in,
                       char[] password)
            throws IOException
Loads the keystore from the specified input stream and it uses the specified password to check for integrity if supplied.
Overrides:
engineLoad in interface KeyStoreSpi
Parameters:
password - the password to check the keystore integrity with
Throws:
IOException - if an I/O error occurs.

engineSetCertificateEntry

public void engineSetCertificateEntry(String alias,
                                      Certificate cert)
            throws KeyStoreException

engineSetKeyEntry

public void engineSetKeyEntry(String alias,
                              byte[] key,
                              Certificate[] chain)
            throws KeyStoreException

engineSetKeyEntry

public void engineSetKeyEntry(String alias,
                              Key key,
                              char[] password,
                              Certificate[] chain)
            throws KeyStoreException

engineSize

public int engineSize()
Returns the number of entries in the keystore.
Overrides:
engineSize in interface KeyStoreSpi

engineStore

public void engineStore(OutputStream out,
                        char[] password)
            throws IOException
Stores the keystore in the specified output stream and it uses the specified key it keep it secure.
Overrides:
engineStore in interface KeyStoreSpi
Parameters:
password - the password to protect the keystore integrity with
Throws:
IOException - if an I/O error occurs.

GnuKeyring.java -- KeyStore adapter for a pair of private and public Keyrings Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.