Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2012 Red Hat, Inc., and individual contributors
   * as indicated by the @author tags.
   *
   * Licensed 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 org.apache.tomcat.util.net.jsse;
 
 
 
NioJSSESupport Created on Jan 5, 2012 at 1:28:34 PM

Author(s):
Nabil Benothman
 
 class NioJSSESupport implements SSLSupport {
 
 	protected SecureNioChannel channel;
 	protected SSLSession session;

Create a new instance of NioJSSESupport

Parameters:
channel
 
 		this. = channel;
 		this. = channel.getSSLSession();
 	}

Create a new instance of NioJSSESupport

Parameters:
session
 
 		this. = session;
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see org.apache.tomcat.util.net.SSLSupport#getCipherSuite()
 	 */
 	public String getCipherSuite() throws IOException {
 		// Look up the current SSLSession
 		return this. == null ? null : this..getCipherSuite();
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see org.apache.tomcat.util.net.SSLSupport#getPeerCertificateChain()
 	 */
 	public Object[] getPeerCertificateChain() throws IOException {
 		return getPeerCertificateChain(false);
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see
 	 * org.apache.tomcat.util.net.SSLSupport#getPeerCertificateChain(boolean)
 	 */
 	public Object[] getPeerCertificateChain(boolean forcethrows IOException {
 		// Look up the current SSLSession
 		if ( == null) {
 			return null;
 		}
 
 		// Convert JSSE's certificate format to the ones we need
 		X509Certificate[] jsseCerts = null;
		try {
catch (Exception bex) {
			// ignore.
		}
		if (jsseCerts == null)
			jsseCerts = new X509Certificate[0];
		if (jsseCerts.length <= 0 && force) {
		}
	}

Parameters:
session
Returns:
Throws:
java.io.IOException
			throws IOException {
		Certificate[] certs = null;
		try {
			certs = session.getPeerCertificates();
catch (Throwable t) {
		    ..debug("Error getting client certs"t);
			return null;
		}
		if (certs == null)
			return null;
		java.security.cert.X509Certificate[] x509Certs = new java.security.cert.X509Certificate[certs.length];
		for (int i = 0; i < certs.lengthi++) {
			if (certs[iinstanceof java.security.cert.X509Certificate) {
				// always currently true with the JSSE 1.1.x
				x509Certs[i] = (java.security.cert.X509Certificatecerts[i];
else {
				try {
					byte[] buffer = certs[i].getEncoded();
					CertificateFactory cf = CertificateFactory.getInstance("X.509");
					x509Certs[i] = (java.security.cert.X509Certificatecf
catch (Exception ex) {
                    ..errorTranslatingCertificate(certs[i], ex);
					return null;
				}
			}
			    ..trace("Cert #" + i + " = " + x509Certs[i]);
		}
		if (x509Certs.length < 1)
			return null;
		return x509Certs;
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.apache.tomcat.util.net.SSLSupport#getKeySize()
	 */
	public Integer getKeySize() throws IOException {
		// Look up the current SSLSession
		if ( == null)
			return null;
		if (keySize == null) {
			int size = 0;
			String cipherSuite = .getCipherSuite();
			for (int i = 0; i < c_aux.lengthi++) {
				if (cipherSuite.indexOf(c_aux[i].) >= 0) {
					size = c_aux[i].;
					break;
				}
			}
			keySize = new Integer(size);
		}
		return keySize;
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.apache.tomcat.util.net.SSLSupport#getSessionId()
	 */
	public String getSessionId() throws IOException {
		// Look up the current SSLSession
		if ( == null) {
			return null;
		}
		// Expose ssl_session (getId)
		byte[] ssl_session = .getId();
		if (ssl_session == null) {
			return null;
		}
		StringBuilder buf = new StringBuilder("");
		for (int x = 0; x < ssl_session.lengthx++) {
			String digit = Integer.toHexString((intssl_session[x]);
			if (digit.length() < 2) {
				buf.append('0');
			}
			if (digit.length() > 2) {
				digit = digit.substring(digit.length() - 2);
			}
			buf.append(digit);
		}
		return buf.toString();
	}

	protected void handShake() throws IOException {
		if ( != null) {
		}
	}
New to GrepCode? Check out our FAQ X