Package org.opensaml.xmlsec.keyinfo.impl

# Interface KeyInfoProvider

All Known Implementing Classes:
  `AbstractKeyInfoProvider`, `AgreementMethodKeyInfoProvider`, `DEREncodedKeyValueProvider`, `DSAKeyValueProvider`, `ECKeyValueProvider`, `InlineX509DataProvider`, `KeyInfoReferenceProvider`, `RSAKeyValueProvider`

public interface KeyInfoProvider
Interface for providers used in conjunction with a `KeyInfoCredentialResolver` which support resolving `Credential`s based on a child element of `KeyInfo`.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`handles(XMLObject keyInfoChild)`
Evaluate whether the given provider should attempt to handle resolving a credential from the specified KeyInfo child.
`Collection<Credential>`
`process(KeyInfoCredentialResolver resolver, XMLObject keyInfoChild, CriteriaSet criteriaSet, KeyInfoResolutionContext kiContext)`
Process a specified KeyInfo child (XMLobject) and attempt to resolve a credential from it.

## Method Details

### process

@Nullable @Unmodifiable @NotLive Collection<Credential> process(@Nonnull KeyInfoCredentialResolver resolver, @Nonnull XMLObject keyInfoChild, @Nullable CriteriaSet criteriaSet, @Nonnull KeyInfoResolutionContext kiContext) throws SecurityException
Process a specified KeyInfo child (XMLobject) and attempt to resolve a credential from it.

Parameters:
  `resolver` - reference to a resolver which is calling the provider
  `keyInfoChild` - the KeyInfo child being processed
  `criteriaSet` - the credential criteria the credential must satisfy
  `kiContext` - the resolution context, used for sharing state amongst resolvers and providers
Returns:
  a resolved Credential collection, or null
Throws:
  `SecurityException` - if there is an error during credential resolution. Note: failure to resolve a credential is not an error.

### handles

boolean handles(@Nonnull XMLObject keyInfoChild)
Evaluate whether the given provider should attempt to handle resolving a credential from the specified KeyInfo child. An evaluation of `true` does not guarantee that a credential can or will be extracted form the particular KeyInfo child, only that processing should be attempted.

Parameters:
  `keyInfoChild` - the KeyInfo child object to consider
Returns:
  true if the provider should attempt to resolve credentials, false otherwise