blob: 29acb0c77ade1a1071bb124072f25fb7c9e93020 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package javax.net.ssl;
import java.security.Principal;
import java.security.cert.Certificate;
import java.util.EventObject;
import javax.security.cert.X509Certificate;
/**
* The event object encapsulating the information about a completed SSL
* handshake on a SSL connection.
*/
public class HandshakeCompletedEvent extends EventObject {
private transient SSLSession session;
/**
* Creates a new {@code HandshakeCompletedEvent} with the specified SSL
* socket and SSL session.
*
* @param sock
* the SSL socket.
* @param s
* the SSL session.
*/
public HandshakeCompletedEvent(SSLSocket sock, SSLSession s) {
super(sock);
session = s;
}
/**
* Returns the SSL session associated with this event.
*
* @return the SSL session associated with this event.
*/
public SSLSession getSession() {
return session;
}
/**
* Returns the name of the cipher suite negotiated during this handshake.
*
* @return the name of the cipher suite negotiated during this handshake.
*/
public String getCipherSuite() {
return session.getCipherSuite();
}
/**
* Returns the list of local certificates used during the handshake. These
* certificates were sent to the peer.
*
* @return Returns the list of certificates used during the handshake with
* the local identity certificate followed by CAs, or {@code null}
* if no certificates were used during the handshake.
*/
public Certificate[] getLocalCertificates() {
return session.getLocalCertificates();
}
/**
* Return the list of certificates identifying the peer during the
* handshake.
*
* @return the list of certificates identifying the peer with the peer's
* identity certificate followed by CAs.
* @throws SSLPeerUnverifiedException
* if the identity of the peer has not been verified.
*/
public Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException {
return session.getPeerCertificates();
}
/**
* Returns the list of certificates identifying the peer. The peer's
* identity certificate is followed by the validated certificate authority
* certificates.
* <p>
* <b>Replaced by:</b> {@link #getPeerCertificates()}
*
* @return the list of certificates identifying the peer
* @throws SSLPeerUnverifiedException
* if the identity of the peer has not been verified.
*/
public X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException {
return session.getPeerCertificateChain();
}
/**
* Returns the {@code Principal} identifying the peer.
*
* @return the {@code Principal} identifying the peer.
* @throws SSLPeerUnverifiedException
* if the identity of the peer has not been verified.
*/
public Principal getPeerPrincipal() throws SSLPeerUnverifiedException {
return session.getPeerPrincipal();
}
/**
* Returns the {@code Principal} used to identify during the handshake.
*
* @return the {@code Principal} used to identify during the handshake.
*/
public Principal getLocalPrincipal() {
return session.getLocalPrincipal();
}
/**
* Returns the SSL socket that produced this event.
*
* @return the SSL socket that produced this event.
*/
public SSLSocket getSocket() {
return (SSLSocket) this.source;
}
}