Overview | Package | Class | Use | Tree | Serialized | Deprecated | Index | Help
| XML Digital Signature and Encryption, 1.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.xml.crypto
Class KeySelector

    java.lang.Object
      javax.xml.crypto.KeySelector

    public abstract class KeySelector

extends java.lang.Object

A selector that finds and returns a key using the data contained in a `KeyInfo` object. An example of an implementation of this class is one that searchs a `KeyStore` for trusted keys that match information contained in a `KeyInfo`.

Whether or not the returned key is trusted and the mechanisms used to determine that is implementation-specific.

Nested Class Summary
`static class` | `KeySelector.Purpose` The purpose of the key that is to be selected.

Constructor Summary
`protected` | `KeySelector()` Default no-args constructor; intended for invocation by subclasses only.

Method Summary
`abstract KeySelectorResult` | `select(KeyInfo keyInfo, KeySelector.Purpose purpose, AlgorithmMethod method, XMLCryptoContext context)` Attempts to find a key that satisfies the specified constraints.
`static KeySelector` | `singletonKeySelector(java.security.Key key)` Returns a `KeySelector` that always selects the specified key, regardless of the `KeyInfo` passed to it.

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

Constructor Detail

### KeySelector

    protected KeySelector()

  Default no-args constructor; intended for invocation by subclasses only.

Method Detail

### select

    public abstract KeySelectorResult select(KeyInfo keyInfo,
                                             KeySelector.Purpose purpose,
                                             AlgorithmMethod method,
                                             XMLCryptoContext context)
                                      throws KeySelectorException

  Attempts to find a key that satisfies the specified constraints.

  Parameters:
    `keyInfo` - a `KeyInfo` (may be `null`)
    `purpose` - the key's purpose (`KeySelector.Purpose.SIGN`, `KeySelector.Purpose.VERIFY`, `KeySelector.Purpose.ENCRYPT`, or `KeySelector.Purpose.DECRYPT`)
    `method` - the algorithm method that this key is to be used for. Only keys that are compatible with the algorithm and meet the constraints of the specified algorithm should be returned.
    `context` - an `XMLCryptoContext` that may contain useful information for finding an appropriate key. If this key selector supports resolving `RetrievalMethod` types, the context's `baseURI` and `dereferencer` parameters (if specified) should be used by the selector to resolve and dereference the URI.
  Returns:
    the result of the key selector
  Throws:
    `KeySelectorException` - if an exceptional condition occurs while attempting to find a key. Note that an inability to find a key is not considered an exception (`null` should be returned in that case). However, an error condition (ex: network communications failure) that prevented the `KeySelector` from finding a potential key should be considered an exception.
    `java.lang.ClassCastException` - if the data type of `method` is not supported by this key selector

### singletonKeySelector

    public static KeySelector singletonKeySelector(java.security.Key key)

  Returns a `KeySelector` that always selects the specified key, regardless of the `KeyInfo` passed to it.

  Parameters:
    `key` - the sole key to be stored in the key selector
  Returns:
    a key selector that always selects the specified key
  Throws:
    `java.lang.NullPointerException` - if `key` is `null`

Overview | Package | Class | Use | Tree | Serialized | Deprecated | Index | Help
| XML Digital Signature and Encryption, 1.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2004, IBM Corporation and Sun Microsystems, Inc. All rights reserved.
Please send comments to: jsr-106-comments@jcp.org