GNU Classpath (0.95) | |
Frames | No Frames |
1: /* PKIXBuilderParameters.java -- parameters for PKIX cert path builders 2: Copyright (C) 2003 Free Software Foundation, Inc. 3: 4: This file is part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; see the file COPYING. If not, write to the 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19: 02110-1301 USA. 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: 39: package java.security.cert; 40: 41: import java.security.InvalidAlgorithmParameterException; 42: import java.security.KeyStore; 43: import java.security.KeyStoreException; 44: 45: import java.util.Set; 46: 47: /** 48: * Parameters for building certificate paths using the PKIX algorithm. 49: * 50: * @see CertPathBuilder 51: * @since 1.4 52: */ 53: public class PKIXBuilderParameters extends PKIXParameters 54: { 55: 56: // Fields. 57: // ------------------------------------------------------------------------ 58: 59: /** The maximum path length. */ 60: private int maxPathLength; 61: 62: // Constructors. 63: // ------------------------------------------------------------------------ 64: 65: /** 66: * Create a new PKIXBuilderParameters object, populating the trusted 67: * certificates set with all X.509 certificates found in the given key 68: * store. All certificates found in the key store are assumed to be 69: * trusted by this constructor. 70: * 71: * @param keystore The key store. 72: * @param targetConstraints The target certificate constraints. 73: * @throws KeyStoreException If the certificates cannot be retrieved 74: * from the key store. 75: * @throws InvalidAlgorithmParameterException If there are no 76: * certificates in the key store. 77: * @throws NullPointerException If <i>keystore</i> is null. 78: */ 79: public PKIXBuilderParameters(KeyStore keystore, 80: CertSelector targetConstraints) 81: throws KeyStoreException, InvalidAlgorithmParameterException 82: { 83: super(keystore); 84: setTargetCertConstraints(targetConstraints); 85: maxPathLength = 5; 86: } 87: 88: /** 89: * Create a new PKIXBuilderParameters object, populating the trusted 90: * certificates set with the elements of the given set, each of which 91: * must be a {@link TrustAnchor}. 92: * 93: * @param trustAnchors The set of trust anchors. 94: * @param targetConstraints The target certificate constraints. 95: * @throws InvalidAlgorithmParameterException If there are no 96: * certificates in the set. 97: * @throws NullPointerException If <i>trustAnchors</i> is null. 98: * @throws ClassCastException If every element in <i>trustAnchors</i> 99: * is not a {@link TrustAnchor}. 100: */ 101: public PKIXBuilderParameters(Set<TrustAnchor> trustAnchors, 102: CertSelector targetConstraints) 103: throws InvalidAlgorithmParameterException 104: { 105: super(trustAnchors); 106: setTargetCertConstraints(targetConstraints); 107: maxPathLength = 5; 108: } 109: 110: // Instance methods. 111: // ------------------------------------------------------------------------ 112: 113: /** 114: * Returns the maximum length of certificate paths to build. 115: * 116: * <p>If this value is 0 it is taken to mean that the certificate path 117: * should contain only one certificate. A value of -1 means that the 118: * certificate path length is unconstrained. The default value is 5. 119: * 120: * @return The maximum path length. 121: */ 122: public int getMaxPathLength() 123: { 124: return maxPathLength; 125: } 126: 127: /** 128: * Sets the maximum length of certificate paths to build. 129: * 130: * @param maxPathLength The new path length. 131: * @throws IllegalArgumentException If <i>maxPathLength</i> is less 132: * than -1. 133: */ 134: public void setMaxPathLength(int maxPathLength) 135: { 136: if (maxPathLength < -1) 137: throw new IllegalArgumentException(); 138: this.maxPathLength = maxPathLength; 139: } 140: 141: public String toString() 142: { 143: StringBuffer buf = new StringBuffer(super.toString()); 144: buf.insert(buf.length() - 2, "; Max Path Length=" + maxPathLength); 145: return buf.toString(); 146: } 147: }
GNU Classpath (0.95) |