Synced libraries with OpenSAML
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / common / OriginSiteMapper.java
1 package edu.internet2.middleware.shibboleth.common;
2
3 import java.security.Key;
4 import java.security.KeyStore;
5 import java.util.Iterator;
6
7 /**
8  *  Used by a Shibboleth SHIRE implementation to validate origin site
9  *  information and locate signature verification keys when validating responses
10  *  and assertions from a Handle Service<P>
11  *
12  *  The interface MUST be thread-safe.
13  *
14  * @author     Scott Cantor
15  * @created    January 24, 2002
16  */
17 public interface OriginSiteMapper
18 {
19     /**
20      *  Provides an iterator over the trusted Handle Services for the specified
21      *  origin site
22      *
23      * @param  originSite  The DNS name of the origin site to query
24      * @return             An iterator over the Handle Service DNS names
25      */
26     public abstract Iterator getHandleServiceNames(String originSite);
27
28     /**
29      *  Returns a preconfigured key to use in verifying a signature created by
30      *  the specified HS<P>
31      *
32      *  Any key returned is implicitly trusted and a certificate signed by
33      *  another trusted entity is not sought or required
34      *
35      * @param  handleService  Description of Parameter
36      * @return                A trusted key (probably public but could be
37      *      secret) or null
38      */
39     public abstract Key getHandleServiceKey(String handleService);
40
41     /**
42      *  Provides an iterator over the security domain expressions for which the
43      *  specified origin site is considered to be authoritative
44      *
45      * @param  originSite  The DNS name of the origin site to query
46      * @return             An iterator over a set of regular expression strings
47      */
48     public abstract Iterator getSecurityDomains(String originSite);
49
50     /**
51      *  Gets a key store containing certificate entries that are trusted to sign
52      *  Handle Service certificates that are encountered during processing<P>
53      *
54      *
55      *
56      * @return    A key store containing trusted certificate issuers
57      */
58     public abstract KeyStore getTrustedRoots();
59 }
60