package com.l7tech.server.transport.tls;

import java.nio.ByteBuffer;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLEngineResult;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLEngineResult.HandshakeStatus;

class c extends SSLEngine {
   boolean a;
   final SSLEngine val$delegate;
   final SsgConnectorSslHelper this$0;

   c(SsgConnectorSslHelper var1, SSLEngine var2) {
      this.this$0 = var1;
      this.val$delegate = var2;
      this.a = false;
   }

   @Override
   public SSLEngineResult wrap(ByteBuffer[] var1, int var2, int var3, ByteBuffer var4) throws SSLException {
      SSLEngineResult var5 = this.val$delegate.wrap(var1, var2, var3, var4);
      this.a(var5);
      return var5;
   }

   @Override
   public SSLEngineResult unwrap(ByteBuffer var1, ByteBuffer[] var2, int var3, int var4) throws SSLException {
      SSLEngineResult var5 = this.val$delegate.unwrap(var1, var2, var3, var4);
      this.a(var5);
      return var5;
   }

   private void a(SSLEngineResult var1) {
      if ((HandshakeStatus.FINISHED.equals(var1.getHandshakeStatus()) || HandshakeStatus.NOT_HANDSHAKING.equals(var1.getHandshakeStatus())) && !this.a) {
         this.getSession().invalidate();
         this.setEnableSessionCreation(false);
         this.setEnabledCipherSuites(new String[0]);
         this.a = true;
      }
   }

   @Override
   public Runnable getDelegatedTask() {
      return this.val$delegate.getDelegatedTask();
   }

   @Override
   public void closeInbound() throws SSLException {
      this.val$delegate.closeInbound();
   }

   @Override
   public boolean isInboundDone() {
      return this.val$delegate.isInboundDone();
   }

   @Override
   public void closeOutbound() {
      this.val$delegate.closeOutbound();
   }

   @Override
   public boolean isOutboundDone() {
      return this.val$delegate.isOutboundDone();
   }

   @Override
   public String[] getSupportedCipherSuites() {
      return this.this$0.h;
   }

   @Override
   public String[] getEnabledCipherSuites() {
      return this.this$0.h;
   }

   @Override
   public void setEnabledCipherSuites(String[] var1) {
   }

   @Override
   public String[] getSupportedProtocols() {
      return this.this$0.g;
   }

   @Override
   public String[] getEnabledProtocols() {
      return this.this$0.g;
   }

   @Override
   public void setEnabledProtocols(String[] var1) {
   }

   @Override
   public SSLSession getSession() {
      return this.val$delegate.getSession();
   }

   @Override
   public void beginHandshake() throws SSLException {
      this.val$delegate.beginHandshake();
   }

   @Override
   public HandshakeStatus getHandshakeStatus() {
      return this.val$delegate.getHandshakeStatus();
   }

   @Override
   public void setUseClientMode(boolean var1) {
      this.val$delegate.setUseClientMode(var1);
   }

   @Override
   public boolean getUseClientMode() {
      return this.val$delegate.getUseClientMode();
   }

   @Override
   public void setNeedClientAuth(boolean var1) {
      this.val$delegate.setNeedClientAuth(var1);
   }

   @Override
   public boolean getNeedClientAuth() {
      return this.val$delegate.getNeedClientAuth();
   }

   @Override
   public void setWantClientAuth(boolean var1) {
   }

   @Override
   public boolean getWantClientAuth() {
      return this.val$delegate.getWantClientAuth();
   }

   @Override
   public void setEnableSessionCreation(boolean var1) {
   }

   @Override
   public boolean getEnableSessionCreation() {
      return this.val$delegate.getEnableSessionCreation();
   }
}
