Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## opencard.opt.security
Class CredentialStore

    java.lang.Object
      |
      +--opencard.opt.security.CredentialStore

public abstract class CredentialStore
extends java.lang.Object

A container for cryptographic credentials. Smartcards may protect access to the data stored on them by means of cryptography. The card services that are used to access that data will then require credentials to overcome this protection. The cryptographic algorithms that have to be used depend on the smartcard's OS. The kind of credential that has to be presented to the card service depends on the algorithm to support as well as on the service. For example, if the algorithm is DES, the credential may be a DES key, or an implementation of the DES algorithm for a specific key.
As a result of these dependencies, card services supporting a particular smartcard or smartcard family will define specific credentials that have to be provided to them. Additionally, they will define a store into which only these credentials can be put. This class is the abstract base class of such stores. Methods to put credentials into it as well as to retrieve them have to be added in dervied classes, since at least the type of the credentials is service specific.
Applications will collect their credentials for a specific smartcard in a credential store. Credential stores are collected in instances of class `CredentialBag`, so the same application may support different smartcards without having to worry about which one is inserted.

See Also:
  `Credential`, `CredentialBag`, `CardService`

Constructor Summary
`protected` | `CredentialStore()` Creates a new generic store for credentials.

Method Summary
`protected Credential` | `fetchCredential(java.lang.Object credID)` Retrieves a credential.
`protected java.util.Enumeration` | `getCredentialIDs()` Gets the identifiers of all credentials stored.
`static CredentialStore` | `getInstance(java.lang.String className)` Instantiates a new credential store.
`protected void` | `storeCredential(java.lang.Object credID, Credential cred)` Stores a credential.
`abstract boolean` | `supports(opencard.core.terminal.CardID cardID)` Tests whether this store supports a particular card.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CredentialStore

    protected CredentialStore()

  Creates a new generic store for credentials.

Method Detail

### supports

    public abstract boolean supports(opencard.core.terminal.CardID cardID)

  Tests whether this store supports a particular card. Providers of card services that require credentials have to provide an appropriate `CredentialStore` class which supports the same cards as the services.
  Parameters:
    `cardID` - the ATR of the smartcard to test for
  Returns:
    `true` if the card is supported, `false` otherwise

### getInstance

    public static CredentialStore getInstance(java.lang.String className)

  Instantiates a new credential store. The class to instantiate has to provide a default constructor.
  Parameters:
    `className` - a subclass of `CredentialStore` to instantiate
  Returns:
    a new instance of the argument class, or `null` if the instantiation failed

### storeCredential

    protected final void storeCredential(java.lang.Object credID,
                                         Credential cred)

  Stores a credential. The credential can be retrieved using `fetchCredential` with an identifier equal to the one passed on storing it.
  The credentials are stored in a hashtable. The identifier therefore has to implement `hashCode` and `equals` appropriately. This method is protected since stores supporting a particular card will require a particular kind of credentials to be stored in them. They will also define an appropriate identifier for credentials.
  Parameters:
    `credID` - an identifier for the credential
    `cred` - the credential to be stored
  See Also:
    `fetchCredential(java.lang.Object)`, `Hashtable`, `Object.hashCode()`, `Object.equals(java.lang.Object)`

### fetchCredential

    protected final Credential fetchCredential(java.lang.Object credID)

  Retrieves a credential. This method returns the last credential that was passed to `storeCredential` with an identifier that equals the argument.
  Parameters:
    `credID` - an identifier for the credential to retrieve
  Returns:
    the credential for the given identifier, or `null` if not found
  See Also:
    `storeCredential(java.lang.Object, opencard.opt.security.Credential)`

### getCredentialIDs

    protected final java.util.Enumeration getCredentialIDs()

  Gets the identifiers of all credentials stored.
  Returns:
    an enumeration of all identifiers in this store
  See Also:
    `storeCredential(java.lang.Object, opencard.opt.security.Credential)`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD