/*
 * Copyright (c) 2011-2017 Contributors to the Eclipse Foundation
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
 * which is available at https://www.apache.org/licenses/LICENSE-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 */

package io.vertx.core.net;

import io.netty.handler.ssl.OpenSsl;
import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.json.JsonObject;

Configures a TCPSSLOptions to use OpenSsl.
Author:Julien Viet
/** * Configures a {@link TCPSSLOptions} to use OpenSsl. * * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */
@DataObject(generateConverter = true, publicConverter = false) public class OpenSSLEngineOptions extends SSLEngineOptions {
Returns:when OpenSSL is available
/** * @return when OpenSSL is available */
public static boolean isAvailable() { return OpenSsl.isAvailable(); }
Returns:when alpn support is available via OpenSSL engine
/** * @return when alpn support is available via OpenSSL engine */
public static boolean isAlpnAvailable() { return OpenSsl.isAlpnSupported(); }
Default value of whether session cache is enabled in open SSL session server context = true
/** * Default value of whether session cache is enabled in open SSL session server context = true */
public static final boolean DEFAULT_SESSION_CACHE_ENABLED = true; private boolean sessionCacheEnabled; public OpenSSLEngineOptions() { sessionCacheEnabled = DEFAULT_SESSION_CACHE_ENABLED; } public OpenSSLEngineOptions(JsonObject json) { OpenSSLEngineOptionsConverter.fromJson(json, this); } public OpenSSLEngineOptions(OpenSSLEngineOptions other) { this.sessionCacheEnabled = other.isSessionCacheEnabled(); }
Set whether session cache is enabled in open SSL session server context
Params:
  • sessionCacheEnabled – true if session cache is enabled
Returns:a reference to this, so the API can be used fluently
/** * Set whether session cache is enabled in open SSL session server context * * @param sessionCacheEnabled true if session cache is enabled * @return a reference to this, so the API can be used fluently */
public OpenSSLEngineOptions setSessionCacheEnabled(boolean sessionCacheEnabled) { this.sessionCacheEnabled = sessionCacheEnabled; return this; }
Whether session cache is enabled in open SSL session server context
Returns:true if session cache is enabled
/** * Whether session cache is enabled in open SSL session server context * * @return true if session cache is enabled */
public boolean isSessionCacheEnabled() { return sessionCacheEnabled; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof OpenSSLEngineOptions)) return false; OpenSSLEngineOptions that = (OpenSSLEngineOptions) o; if (sessionCacheEnabled != that.sessionCacheEnabled) return false; return true; } @Override public int hashCode() { return sessionCacheEnabled ? 1 : 0; } public JsonObject toJson() { JsonObject json = new JsonObject(); OpenSSLEngineOptionsConverter.toJson(this, json); return json; } @Override public OpenSSLEngineOptions clone() { return new OpenSSLEngineOptions(this); } @Override public OpenSSLEngineOptions copy() { return new OpenSSLEngineOptions(this); } }