1 /* |
1 /* |
2 * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
28 import java.security.InvalidAlgorithmParameterException; |
28 import java.security.InvalidAlgorithmParameterException; |
29 |
29 |
30 /** |
30 /** |
31 * The <i>Service Provider Interface</i> (<b>SPI</b>) |
31 * The <i>Service Provider Interface</i> (<b>SPI</b>) |
32 * for the {@link CertPathBuilder CertPathBuilder} class. All |
32 * for the {@link CertPathBuilder CertPathBuilder} class. All |
33 * <code>CertPathBuilder</code> implementations must include a class (the |
33 * {@code CertPathBuilder} implementations must include a class (the |
34 * SPI class) that extends this class (<code>CertPathBuilderSpi</code>) and |
34 * SPI class) that extends this class ({@code CertPathBuilderSpi}) and |
35 * implements all of its methods. In general, instances of this class should |
35 * implements all of its methods. In general, instances of this class should |
36 * only be accessed through the <code>CertPathBuilder</code> class. For |
36 * only be accessed through the {@code CertPathBuilder} class. For |
37 * details, see the Java Cryptography Architecture. |
37 * details, see the Java Cryptography Architecture. |
38 * <p> |
38 * <p> |
39 * <b>Concurrent Access</b> |
39 * <b>Concurrent Access</b> |
40 * <p> |
40 * <p> |
41 * Instances of this class need not be protected against concurrent |
41 * Instances of this class need not be protected against concurrent |
42 * access from multiple threads. Threads that need to access a single |
42 * access from multiple threads. Threads that need to access a single |
43 * <code>CertPathBuilderSpi</code> instance concurrently should synchronize |
43 * {@code CertPathBuilderSpi} instance concurrently should synchronize |
44 * amongst themselves and provide the necessary locking before calling the |
44 * amongst themselves and provide the necessary locking before calling the |
45 * wrapping <code>CertPathBuilder</code> object. |
45 * wrapping {@code CertPathBuilder} object. |
46 * <p> |
46 * <p> |
47 * However, implementations of <code>CertPathBuilderSpi</code> may still |
47 * However, implementations of {@code CertPathBuilderSpi} may still |
48 * encounter concurrency issues, since multiple threads each |
48 * encounter concurrency issues, since multiple threads each |
49 * manipulating a different <code>CertPathBuilderSpi</code> instance need not |
49 * manipulating a different {@code CertPathBuilderSpi} instance need not |
50 * synchronize. |
50 * synchronize. |
51 * |
51 * |
52 * @since 1.4 |
52 * @since 1.4 |
53 * @author Sean Mullan |
53 * @author Sean Mullan |
54 */ |
54 */ |
66 * @param params the algorithm parameters |
66 * @param params the algorithm parameters |
67 * @return the result of the build algorithm |
67 * @return the result of the build algorithm |
68 * @throws CertPathBuilderException if the builder is unable to construct |
68 * @throws CertPathBuilderException if the builder is unable to construct |
69 * a certification path that satisfies the specified parameters |
69 * a certification path that satisfies the specified parameters |
70 * @throws InvalidAlgorithmParameterException if the specified parameters |
70 * @throws InvalidAlgorithmParameterException if the specified parameters |
71 * are inappropriate for this <code>CertPathBuilder</code> |
71 * are inappropriate for this {@code CertPathBuilder} |
72 */ |
72 */ |
73 public abstract CertPathBuilderResult engineBuild(CertPathParameters params) |
73 public abstract CertPathBuilderResult engineBuild(CertPathParameters params) |
74 throws CertPathBuilderException, InvalidAlgorithmParameterException; |
74 throws CertPathBuilderException, InvalidAlgorithmParameterException; |
75 |
75 |
76 /** |
76 /** |