1 package javax.security.sasl;
2
3 import java.security.spec.AlgorithmParameterSpec;
4
5 /**
6 * The visible additional methods for a SASL server to support the SM2 protocol.
7 *
8 * @version $Revision: 1.2 $
9 * @since draft-naffah-cat-sasl-sm2-00
10 */
11 public interface SaslServerExt extends SaslServer {
12
13 /**
14 * Retrieves the SASL Security Context of this SASL mechanism object. This
15 * method can be called only after the authentication exchange has completed
16 * (i.e., when {@link javax.security.sasl.SaslServer#isComplete()} returns
17 * <tt>true</tt>); otherwise, a {@link javax.security.sasl.SaslException}
18 * is thrown.
19 *
20 * @return the SASL Security Context of this object.
21 * @throws SaslException if the authentication phase has not finished.
22 */
23 AlgorithmParameterSpec getSaslSecurityContext() throws SaslException;
24
25 /**
26 * Sets the SASL Security Context of this SASL mechanism object to the
27 * designated value.
28 *
29 * @param ctx the new SASL Security Context of this object.
30 * @throws SaslException if an error occurs during the operation.
31 */
32 void setSaslSecurityContext(AlgorithmParameterSpec ctx) throws SaslException;
33
34 /**
35 * Given the SASL mechanism peer's evidence, which may be null, this method
36 * is for SASL mechanisms capable of using the designated evidence to update
37 * or recycle their cryptographic data, so security services can still be
38 * provided, in a secure fashion, without the need to go through the
39 * authentication phase again.
40 *
41 * @param peerEvidence the SASL mechanism peer's evidence.
42 * @return this object's evidence.
43 * @throws SaslException if an exception occurs during the operation.
44 */
45 byte[] evaluateEvidence(byte[] peerEvidence) throws SaslException;
46 }