Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
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 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.

Since:
  1.6

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(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.
    `ClassCastException` - if the data type of `method` is not supported by this key selector

### singletonKeySelector

    public static KeySelector singletonKeySelector(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:
    `NullPointerException` - if `key` is `null`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.