package com.l7tech.server.identity.cert;

import com.l7tech.common.io.CertUtils;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.transport.SsgConnector.Endpoint;
import com.l7tech.identity.IdentityProviderConfigManager;
import com.l7tech.identity.User;
import com.l7tech.security.prov.JceProvider;
import com.l7tech.security.prov.RsaSignerEngine;
import com.l7tech.server.AuthenticatableHttpServlet;
import com.l7tech.server.DefaultKey;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.IOUtils;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.UnrecoverableKeyException;
import org.springframework.context.ApplicationContext;

public class CSRHandler extends AuthenticatableHttpServlet {
   private DefaultKey defaultKey;
   private IdentityProviderConfigManager providerConfigManager;
   public static final String AUTH_HEADER_NAME;
   public static final String ROUTED_FROM_PEER;
   private static final String PROP_PKIX_CSR_DEFAULT_EXPIRY_AGE;
   static final long serialVersionUID = -1312528994084368316L;
   private static final String[] b;

   @Override
   public void init(ServletConfig var1) throws ServletException {
      super.init(var1);
      ApplicationContext var10001 = this.getApplicationContext();
      String[] var2 = b;
      this.defaultKey = (DefaultKey)var10001.getBean(var2[35], DefaultKey.class);
      this.providerConfigManager = (IdentityProviderConfigManager)this.getApplicationContext().getBean(var2[29], IdentityProviderConfigManager.class);
   }

   @Override
   protected String getFeature() {
      return b[23];
   }

   @Override
   protected Endpoint getRequiredEndpoint() {
      return Endpoint.CSRHANDLER;
   }

   protected void doPost(HttpServletRequest param1, HttpServletResponse param2) throws ServletException, IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: invokeinterface jakarta/servlet/http/HttpServletRequest.isSecure ()Z 1
      // 006: ifne 01c
      // 009: aload 2
      // 00a: sipush 403
      // 00d: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 010: bipush 1
      // 011: aaload
      // 012: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 017: return
      // 018: invokestatic com/l7tech/server/identity/cert/CSRHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01b: athrow
      // 01c: aload 0
      // 01d: aload 1
      // 01e: invokevirtual com/l7tech/server/identity/cert/CSRHandler.authenticateRequestBasic (Ljakarta/servlet/http/HttpServletRequest;)[Lcom/l7tech/server/identity/AuthenticationResult;
      // 021: astore 3
      // 022: goto 107
      // 025: astore 4
      // 027: aload 2
      // 028: sipush 401
      // 02b: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 02e: astore 15
      // 030: aload 15
      // 032: bipush 12
      // 034: aaload
      // 035: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 03a: aload 0
      // 03b: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 03e: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 041: aload 4
      // 043: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 046: aload 15
      // 048: bipush 17
      // 04a: aaload
      // 04b: swap
      // 04c: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 051: aload 4
      // 053: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 056: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 059: return
      // 05a: astore 4
      // 05c: aload 2
      // 05d: sipush 401
      // 060: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 063: astore 15
      // 065: aload 15
      // 067: bipush 5
      // 068: aaload
      // 069: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 06e: aload 0
      // 06f: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 072: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 075: aload 4
      // 077: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 07a: aload 15
      // 07c: bipush 18
      // 07e: aaload
      // 07f: swap
      // 080: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 085: aload 4
      // 087: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 08a: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 08d: return
      // 08e: astore 4
      // 090: aload 0
      // 091: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 094: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 097: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 09a: astore 15
      // 09c: aload 15
      // 09e: bipush 10
      // 0a0: aaload
      // 0a1: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 0a4: aload 2
      // 0a5: sipush 403
      // 0a8: aload 15
      // 0aa: bipush 22
      // 0ac: aaload
      // 0ad: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 0b2: return
      // 0b3: astore 4
      // 0b5: aload 0
      // 0b6: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 0b9: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 0bc: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 0bf: astore 15
      // 0c1: aload 15
      // 0c3: bipush 8
      // 0c5: aaload
      // 0c6: aload 4
      // 0c8: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0cb: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0ce: aload 2
      // 0cf: sipush 503
      // 0d2: aload 15
      // 0d4: bipush 6
      // 0d6: aaload
      // 0d7: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 0dc: return
      // 0dd: astore 4
      // 0df: aload 0
      // 0e0: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 0e3: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 0e6: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 0e9: astore 15
      // 0eb: aload 15
      // 0ed: bipush 21
      // 0ef: aaload
      // 0f0: aload 4
      // 0f2: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f5: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0f8: aload 2
      // 0f9: sipush 503
      // 0fc: aload 15
      // 0fe: bipush 15
      // 100: aaload
      // 101: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 106: return
      // 107: aload 3
      // 108: ifnull 118
      // 10b: aload 3
      // 10c: arraylength
      // 10d: bipush 1
      // 10e: if_icmpge 137
      // 111: goto 118
      // 114: invokestatic com/l7tech/server/identity/cert/CSRHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 117: athrow
      // 118: aload 2
      // 119: sipush 401
      // 11c: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 11f: bipush 5
      // 120: aaload
      // 121: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 126: aload 0
      // 127: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 12a: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 12d: bipush 2
      // 12e: aaload
      // 12f: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 132: return
      // 133: invokestatic com/l7tech/server/identity/cert/CSRHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 136: athrow
      // 137: aload 3
      // 138: arraylength
      // 139: bipush 1
      // 13a: if_icmple 15e
      // 13d: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 140: astore 15
      // 142: aload 15
      // 144: bipush 19
      // 146: aaload
      // 147: astore 4
      // 149: aload 2
      // 14a: sipush 409
      // 14d: aload 4
      // 14f: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 154: aload 0
      // 155: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 158: aload 4
      // 15a: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 15d: return
      // 15e: aload 3
      // 15f: bipush 0
      // 160: aaload
      // 161: astore 4
      // 163: aload 4
      // 165: invokevirtual com/l7tech/server/identity/AuthenticationResult.getUser ()Lcom/l7tech/identity/User;
      // 168: astore 5
      // 16a: aload 4
      // 16c: invokevirtual com/l7tech/server/identity/AuthenticationResult.getAuthenticatedCert ()Ljava/security/cert/X509Certificate;
      // 16f: astore 6
      // 171: aload 0
      // 172: getfield com/l7tech/server/identity/cert/CSRHandler.clientCertManager Lcom/l7tech/identity/cert/ClientCertManager;
      // 175: aload 5
      // 177: aload 6
      // 179: invokeinterface com/l7tech/identity/cert/ClientCertManager.userCanGenCert (Lcom/l7tech/identity/User;Ljava/security/cert/Certificate;)Z 3
      // 17e: ifne 1b2
      // 181: aload 0
      // 182: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 185: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 188: aload 5
      // 18a: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 18f: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 192: bipush 24
      // 194: aaload
      // 195: swap
      // 196: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 19b: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 19e: aload 2
      // 19f: sipush 403
      // 1a2: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 1a5: bipush 25
      // 1a7: aaload
      // 1a8: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 1ad: return
      // 1ae: invokestatic com/l7tech/server/identity/cert/CSRHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b1: athrow
      // 1b2: aload 5
      // 1b4: invokeinterface com/l7tech/identity/User.getProviderId ()Lcom/l7tech/objectmodel/Goid; 1
      // 1b9: astore 7
      // 1bb: aload 0
      // 1bc: getfield com/l7tech/server/identity/cert/CSRHandler.providerConfigManager Lcom/l7tech/identity/IdentityProviderConfigManager;
      // 1bf: aload 7
      // 1c1: invokeinterface com/l7tech/identity/IdentityProviderConfigManager.findByPrimaryKey (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/objectmodel/PersistentEntity; 2
      // 1c6: checkcast com/l7tech/identity/IdentityProviderConfig
      // 1c9: astore 8
      // 1cb: aload 8
      // 1cd: invokevirtual com/l7tech/identity/IdentityProviderConfig.canIssueCertificates ()Z
      // 1d0: ifne 204
      // 1d3: aload 0
      // 1d4: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 1d7: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 1da: aload 8
      // 1dc: invokevirtual com/l7tech/identity/IdentityProviderConfig.getName ()Ljava/lang/String;
      // 1df: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 1e2: astore 15
      // 1e4: aload 15
      // 1e6: bipush 4
      // 1e7: aaload
      // 1e8: swap
      // 1e9: aload 15
      // 1eb: bipush 0
      // 1ec: aaload
      // 1ed: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 1f2: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 1f5: aload 2
      // 1f6: sipush 403
      // 1f9: aload 15
      // 1fb: bipush 25
      // 1fd: aaload
      // 1fe: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 203: return
      // 204: goto 23d
      // 207: astore 7
      // 209: aload 0
      // 20a: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 20d: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 210: aload 5
      // 212: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 217: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 21a: astore 15
      // 21c: aload 15
      // 21e: bipush 34
      // 220: aaload
      // 221: swap
      // 222: aload 15
      // 224: bipush 3
      // 225: aaload
      // 226: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 22b: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 22e: aload 2
      // 22f: sipush 403
      // 232: aload 15
      // 234: bipush 25
      // 236: aaload
      // 237: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 23c: return
      // 23d: aload 0
      // 23e: aload 1
      // 23f: invokevirtual com/l7tech/server/identity/cert/CSRHandler.readCSRFromRequest (Ljakarta/servlet/http/HttpServletRequest;)[B
      // 242: astore 7
      // 244: new javax/security/auth/x500/X500Principal
      // 247: dup
      // 248: aload 5
      // 24a: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 24f: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 252: astore 15
      // 254: aload 15
      // 256: bipush 27
      // 258: aaload
      // 259: swap
      // 25a: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 25f: invokespecial javax/security/auth/x500/X500Principal.<init> (Ljava/lang/String;)V
      // 262: astore 9
      // 264: aload 0
      // 265: getfield com/l7tech/server/identity/cert/CSRHandler.config Lcom/l7tech/util/Config;
      // 268: aload 15
      // 26a: bipush 30
      // 26c: aaload
      // 26d: sipush 730
      // 270: invokeinterface com/l7tech/util/Config.getIntProperty (Ljava/lang/String;I)I 3
      // 275: istore 10
      // 277: new com/l7tech/common/io/CertGenParams
      // 27a: dup
      // 27b: aload 9
      // 27d: iload 10
      // 27f: bipush 0
      // 280: aconst_null
      // 281: invokespecial com/l7tech/common/io/CertGenParams.<init> (Ljavax/security/auth/x500/X500Principal;IZLjava/lang/String;)V
      // 284: invokevirtual com/l7tech/common/io/CertGenParams.useUserCertDefaults ()Lcom/l7tech/common/io/CertGenParams;
      // 287: astore 11
      // 289: aload 5
      // 28b: instanceof com/l7tech/identity/internal/InternalUser
      // 28e: ifeq 2b9
      // 291: aload 5
      // 293: checkcast com/l7tech/identity/internal/InternalUser
      // 296: invokevirtual com/l7tech/identity/internal/InternalUser.getExpiration ()J
      // 299: lstore 12
      // 29b: lload 12
      // 29d: ldc2_w -1
      // 2a0: lcmp
      // 2a1: ifeq 2b9
      // 2a4: aload 11
      // 2a6: new java/util/Date
      // 2a9: dup
      // 2aa: lload 12
      // 2ac: invokespecial java/util/Date.<init> (J)V
      // 2af: invokevirtual com/l7tech/common/io/CertGenParams.setNotAfter (Ljava/util/Date;)V
      // 2b2: goto 2b9
      // 2b5: invokestatic com/l7tech/server/identity/cert/CSRHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2b8: athrow
      // 2b9: aload 0
      // 2ba: invokevirtual com/l7tech/server/identity/cert/CSRHandler.getSigner ()Lcom/l7tech/security/prov/RsaSignerEngine;
      // 2bd: aload 7
      // 2bf: aload 11
      // 2c1: invokeinterface com/l7tech/security/prov/RsaSignerEngine.createCertificate ([BLcom/l7tech/common/io/CertGenParams;)Ljava/security/cert/Certificate; 3
      // 2c6: astore 8
      // 2c8: goto 312
      // 2cb: astore 10
      // 2cd: aload 2
      // 2ce: sipush 503
      // 2d1: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 2d4: astore 15
      // 2d6: aload 15
      // 2d8: bipush 36
      // 2da: aaload
      // 2db: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 2e0: aload 0
      // 2e1: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 2e4: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 2e7: aload 15
      // 2e9: bipush 37
      // 2eb: aaload
      // 2ec: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 2ef: return
      // 2f0: astore 10
      // 2f2: aload 2
      // 2f3: sipush 500
      // 2f6: aload 10
      // 2f8: invokevirtual java/lang/Exception.getMessage ()Ljava/lang/String;
      // 2fb: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 300: aload 0
      // 301: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 304: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 307: aload 10
      // 309: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 30c: aload 10
      // 30e: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 311: return
      // 312: invokestatic com/l7tech/server/audit/AuditContextUtils.isSystem ()Z
      // 315: istore 10
      // 317: bipush 1
      // 318: invokestatic com/l7tech/server/audit/AuditContextUtils.setSystem (Z)V
      // 31b: aload 0
      // 31c: getfield com/l7tech/server/identity/cert/CSRHandler.clientCertManager Lcom/l7tech/identity/cert/ClientCertManager;
      // 31f: aload 5
      // 321: aload 8
      // 323: aload 4
      // 325: invokevirtual com/l7tech/server/identity/AuthenticationResult.isCertSignedByStaleCA ()Z
      // 328: invokeinterface com/l7tech/identity/cert/ClientCertManager.recordNewUserCert (Lcom/l7tech/identity/User;Ljava/security/cert/Certificate;Z)V 4
      // 32d: aload 0
      // 32e: aload 5
      // 330: invokevirtual com/l7tech/server/identity/cert/CSRHandler.buildIssuedMessage (Lcom/l7tech/identity/User;)Ljava/lang/String;
      // 333: astore 11
      // 335: aload 0
      // 336: invokevirtual com/l7tech/server/identity/cert/CSRHandler.getApplicationContext ()Lorg/springframework/context/ApplicationContext;
      // 339: new com/l7tech/server/event/system/CertificateSigningServiceEvent
      // 33c: dup
      // 33d: aload 0
      // 33e: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 341: aload 1
      // 342: invokeinterface jakarta/servlet/http/HttpServletRequest.getRemoteAddr ()Ljava/lang/String; 1
      // 347: aload 11
      // 349: aload 5
      // 34b: invokeinterface com/l7tech/identity/User.getProviderId ()Lcom/l7tech/objectmodel/Goid; 1
      // 350: aload 0
      // 351: aload 5
      // 353: invokevirtual com/l7tech/server/identity/cert/CSRHandler.getName (Lcom/l7tech/identity/User;)Ljava/lang/String;
      // 356: aload 5
      // 358: invokeinterface com/l7tech/identity/User.getId ()Ljava/lang/String; 1
      // 35d: invokespecial com/l7tech/server/event/system/CertificateSigningServiceEvent.<init> (Ljava/lang/Object;Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;Ljava/lang/String;)V
      // 360: invokeinterface org/springframework/context/ApplicationContext.publishEvent (Lorg/springframework/context/ApplicationEvent;)V 2
      // 365: iload 10
      // 367: invokestatic com/l7tech/server/audit/AuditContextUtils.setSystem (Z)V
      // 36a: goto 3af
      // 36d: astore 11
      // 36f: aload 11
      // 371: invokevirtual com/l7tech/objectmodel/UpdateException.getMessage ()Ljava/lang/String;
      // 374: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 377: astore 15
      // 379: aload 15
      // 37b: bipush 28
      // 37d: aaload
      // 37e: swap
      // 37f: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 384: astore 12
      // 386: aload 2
      // 387: sipush 500
      // 38a: aload 12
      // 38c: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 391: aload 0
      // 392: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 395: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 398: aload 12
      // 39a: aload 11
      // 39c: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 39f: iload 10
      // 3a1: invokestatic com/l7tech/server/audit/AuditContextUtils.setSystem (Z)V
      // 3a4: return
      // 3a5: astore 14
      // 3a7: iload 10
      // 3a9: invokestatic com/l7tech/server/audit/AuditContextUtils.setSystem (Z)V
      // 3ac: aload 14
      // 3ae: athrow
      // 3af: aload 8
      // 3b1: invokevirtual java/security/cert/Certificate.getEncoded ()[B
      // 3b4: astore 11
      // 3b6: aload 2
      // 3b7: sipush 200
      // 3ba: invokeinterface jakarta/servlet/http/HttpServletResponse.setStatus (I)V 2
      // 3bf: aload 2
      // 3c0: getstatic com/l7tech/server/identity/cert/CSRHandler.b [Ljava/lang/String;
      // 3c3: astore 15
      // 3c5: aload 15
      // 3c7: bipush 31
      // 3c9: aaload
      // 3ca: invokeinterface jakarta/servlet/http/HttpServletResponse.setContentType (Ljava/lang/String;)V 2
      // 3cf: aload 2
      // 3d0: aload 11
      // 3d2: arraylength
      // 3d3: invokeinterface jakarta/servlet/http/HttpServletResponse.setContentLength (I)V 2
      // 3d8: aload 2
      // 3d9: invokeinterface jakarta/servlet/http/HttpServletResponse.getOutputStream ()Ljakarta/servlet/ServletOutputStream; 1
      // 3de: aload 11
      // 3e0: invokevirtual jakarta/servlet/ServletOutputStream.write ([B)V
      // 3e3: aload 2
      // 3e4: invokeinterface jakarta/servlet/http/HttpServletResponse.flushBuffer ()V 1
      // 3e9: aload 0
      // 3ea: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 3ed: aload 5
      // 3ef: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 3f4: aload 8
      // 3f6: checkcast java/security/cert/X509Certificate
      // 3f9: invokevirtual java/security/cert/X509Certificate.getSubjectDN ()Ljava/security/Principal;
      // 3fc: invokeinterface java/security/Principal.toString ()Ljava/lang/String; 1
      // 401: aload 15
      // 403: bipush 33
      // 405: aaload
      // 406: dup_x2
      // 407: pop
      // 408: aload 15
      // 40a: bipush 9
      // 40c: aaload
      // 40d: swap
      // 40e: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 413: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 416: goto 43a
      // 419: astore 11
      // 41b: aload 2
      // 41c: sipush 500
      // 41f: aload 11
      // 421: invokevirtual java/security/cert/CertificateEncodingException.getMessage ()Ljava/lang/String;
      // 424: invokeinterface jakarta/servlet/http/HttpServletResponse.sendError (ILjava/lang/String;)V 3
      // 429: aload 0
      // 42a: getfield com/l7tech/server/identity/cert/CSRHandler.logger Ljava/util/logging/Logger;
      // 42d: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 430: aload 11
      // 432: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 435: aload 11
      // 437: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 43a: return
      // try (0 -> 10): 10 com/l7tech/identity/BadCredentialsException
      // try (12 -> 16): 17 com/l7tech/identity/BadCredentialsException
      // try (12 -> 16): 40 com/l7tech/identity/MissingCredentialsException
      // try (12 -> 16): 63 com/l7tech/identity/IssuedCertNotPresentedException
      // try (12 -> 16): 80 com/l7tech/gateway/common/LicenseException
      // try (12 -> 16): 99 com/l7tech/server/transport/ListenerException
      // try (120 -> 140): 140 com/l7tech/identity/BadCredentialsException
      // try (118 -> 124): 125 com/l7tech/identity/BadCredentialsException
      // try (171 -> 194): 233 com/l7tech/objectmodel/FindException
      // try (171 -> 195): 195 com/l7tech/identity/BadCredentialsException
      // try (197 -> 231): 233 com/l7tech/objectmodel/FindException
      // try (298 -> 308): 309 com/l7tech/identity/BadCredentialsException
      // try (274 -> 317): 318 com/l7tech/server/identity/cert/CSRHandler$NoCaException
      // try (274 -> 317): 335 java/lang/Exception
      // try (353 -> 382): 385 com/l7tech/objectmodel/UpdateException
      // try (353 -> 382): 409 null
      // try (385 -> 406): 409 null
      // try (409 -> 410): 409 null
      // try (414 -> 456): 457 java/security/cert/CertificateEncodingException
   }

   private String buildIssuedMessage(User var1) {
      StringBuilder var2 = new StringBuilder();
      String[] var3 = b;
      var2.append(var3[20]);
      var2.append(this.getName(var1));
      var2.append(var3[26]);
      var2.append(var1.getId());
      var2.append(var3[7]);
      var2.append(this.getIdentityProviderName(var1.getProviderId()));
      var2.append(var3[11]);
      var2.append(var1.getProviderId());
      var2.append(")");
      return var2.toString();
   }

   private String getName(User var1) {
      return var1.getLogin() != null ? var1.getLogin() : var1.getId();
   }

   private byte[] readCSRFromRequest(HttpServletRequest var1) throws IOException {
      byte[] var2 = IOUtils.slurpStream(var1.getInputStream());

      try {
         return CertUtils.csrPemToBinary(var2);
      } catch (IOException var4) {
         return var2;
      }
   }

   private RsaSignerEngine getSigner() throws CSRHandler.NoCaException {
      SsgKeyEntry var1 = this.defaultKey.getCaInfo();

      try {
         if (var1 == null) {
            throw new CSRHandler.NoCaException();
         }
      } catch (UnrecoverableKeyException var4) {
         throw a(var4);
      }

      try {
         return JceProvider.getInstance().createRsaSignerEngine(var1.getPrivate(), var1.getCertificateChain());
      } catch (UnrecoverableKeyException var3) {
         throw new CSRHandler.NoCaException(b[13] + ExceptionUtils.getMessage(var3), var3);
      }
   }

   private static Exception a(Exception var0) {
      return var0;
   }

   static {
      String[] var5 = new String[38];
      int var3 = 0;
      String var2 = "|\u00071o_v_0H! J`\r3N! yV-p'\u001dt\u0007 H`\u000e+B&tI%\u0012+T! Yj\u0012;\u0007!hHj\n9OusIi_.H't&\u001dt\u0007 rd\u0011:K0r\u001af\u001e2K0d\u001ar\u0016*O:uN%\u001c,B1eTq\u0016?K&\u000b~d\u0006R\u001aa\u001a0N0d\u0017\nO0 sa\u001a0S<tC%\u000f,H#i^`\r~\u0005\u001e3R&t\u001au\r1Q<d_%\t?K<d\u001af\r;C0nNl\u001e2T)\u0019F!eMd\u0006~d\u0014 I`\r(N6e\u001ak\u0010*\u00070n[g\u0013;CubC%\u00137D0nI`\u0003w\u000bu$\rB'vSf\u001a~N& Ok\u00137D0nI`\u001br\u0007'eNp\r0N;g\u001a0On\rp\u0007\u0006uXo\u001a=SuDt8\u0018\fB$u_v\u000b1UuiI%\r;A s_a_=T'\u0003~\u000fv\u001e3R&t\u001au\r1Q<d_%\t?K<d\u001af\r;C0nNl\u001e2T,\u000bI4bV`_*HuaYf\u001a-TucUk\u00197@ r_a_\u001dfupHl\t?S0 Q`\u0006d\u0007\u0019.L<x\u0014f\f,\t1e\\d\n2S\u0010xJl\r'f2e+\u0019F!eMd\u0006~d\u0014 I`\r(N6e\u001ak\u0010*\u00070n[g\u0013;CuoT%\u000b6N& Jj\r*\u0010\fH t_aR\u0018U:m\u0017U\u001a;U\u0017\u001fR!h_k\u000b7D4tSj\u0011~A4iV`\u001bd\u0007\u0017\u001fR!h_k\u000b7D4tSj\u0011~A4iV`\u001bd\u0007P\u001fJ7i]p\u0010+TuaOq\u0017;I!iYd\u000b7H; \u0017%\u001c,B1eTq\u0016?K& Ld\u00137CuiT%\u00121U0 Nm\u001e0\u0007:n_%\u0016:B;tSq\u0006~W'oLl\u001b;U{\u001c\u0017T&u_a_=B'tSc\u0016=F!e\u001ac\u0010,\u0007 s_w_1\fB$u_v\u000b~I:t\u001au\u001a,J<tN`\u001b~H; Nm\u0016-\u0007%oHqS~U0tOw\u00117I2 \u000f5O8\u001dt\u0007 |j\r<N1d_kQ~d:nNd\u001c*\u0007,oOw_?C8iTl\f*U4tUw_8H' Wj\r;\u0007<n\\jQ\u0012-B'vSf\u001add\u0006Rrd\u0011:K0r\u0015+T0r\u001al\f~U0fOv\u001a:\u00076sH?_8\u001dt\u0007 |j\r<N1d_kQ~d:nNd\u001c*\u0007,oOw_?C8iTl\f*U4tUw_8H' Wj\r;\u0007<n\\jQ\u0003~\u000fv\u0003=Ih\u0017\u001dH l^%\u00111Sur_f\u0010,Cuc_w\u000bp\u0007\u001d7C0nNl\u000b'w'oLl\u001b;U\u0016oTc\u00169j4n[b\u001a,\u0019.L<x\u0014f\f,\t1e\\d\n2S\u0010xJl\r'f2e\u001a?W%lSf\u001e*N:n\u0015}R&\u0012e9\u0017f\u001esD0rN\r\u001fR!hUw\u0016$F!iUk\u0016-B;t\u001ak\u001a)\u00076eHq_*HuuI`\r~6\u001dH l^kX*\u00079oUn_+WutR`_7C0nNl\u000b'\u0007%rUs\u0016:B' \\j\r~S=e\u001ap\f;Uu:\u001a\n:B3aOi\u000b\u0015B,";
      int var4 = "|\u00071o_v_0H! J`\r3N! yV-p'\u001dt\u0007 H`\u000e+B&tI%\u0012+T! Yj\u0012;\u0007!hHj\n9OusIi_.H't&\u001dt\u0007 rd\u0011:K0r\u001af\u001e2K0d\u001ar\u0016*O:uN%\u001c,B1eTq\u0016?K&\u000b~d\u0006R\u001aa\u001a0N0d\u0017\nO0 sa\u001a0S<tC%\u000f,H#i^`\r~\u0005\u001e3R&t\u001au\r1Q<d_%\t?K<d\u001af\r;C0nNl\u001e2T)\u0019F!eMd\u0006~d\u0014 I`\r(N6e\u001ak\u0010*\u00070n[g\u0013;CubC%\u00137D0nI`\u0003w\u000bu$\rB'vSf\u001a~N& Ok\u00137D0nI`\u001br\u0007'eNp\r0N;g\u001a0On\rp\u0007\u0006uXo\u001a=SuDt8\u0018\fB$u_v\u000b1UuiI%\r;A s_a_=T'\u0003~\u000fv\u001e3R&t\u001au\r1Q<d_%\t?K<d\u001af\r;C0nNl\u001e2T,\u000bI4bV`_*HuaYf\u001a-TucUk\u00197@ r_a_\u001dfupHl\t?S0 Q`\u0006d\u0007\u0019.L<x\u0014f\f,\t1e\\d\n2S\u0010xJl\r'f2e+\u0019F!eMd\u0006~d\u0014 I`\r(N6e\u001ak\u0010*\u00070n[g\u0013;CuoT%\u000b6N& Jj\r*\u0010\fH t_aR\u0018U:m\u0017U\u001a;U\u0017\u001fR!h_k\u000b7D4tSj\u0011~A4iV`\u001bd\u0007\u0017\u001fR!h_k\u000b7D4tSj\u0011~A4iV`\u001bd\u0007P\u001fJ7i]p\u0010+TuaOq\u0017;I!iYd\u000b7H; \u0017%\u001c,B1eTq\u0016?K& Ld\u00137CuiT%\u00121U0 Nm\u001e0\u0007:n_%\u0016:B;tSq\u0006~W'oLl\u001b;U{\u001c\u0017T&u_a_=B'tSc\u0016=F!e\u001ac\u0010,\u0007 s_w_1\fB$u_v\u000b~I:t\u001au\u001a,J<tN`\u001b~H; Nm\u0016-\u0007%oHqS~U0tOw\u00117I2 \u000f5O8\u001dt\u0007 |j\r<N1d_kQ~d:nNd\u001c*\u0007,oOw_?C8iTl\f*U4tUw_8H' Wj\r;\u0007<n\\jQ\u0012-B'vSf\u001add\u0006Rrd\u0011:K0r\u0015+T0r\u001al\f~U0fOv\u001a:\u00076sH?_8\u001dt\u0007 |j\r<N1d_kQ~d:nNd\u001c*\u0007,oOw_?C8iTl\f*U4tUw_8H' Wj\r;\u0007<n\\jQ\u0003~\u000fv\u0003=Ih\u0017\u001dH l^%\u00111Sur_f\u0010,Cuc_w\u000bp\u0007\u001d7C0nNl\u000b'w'oLl\u001b;U\u0016oTc\u00169j4n[b\u001a,\u0019.L<x\u0014f\f,\t1e\\d\n2S\u0010xJl\r'f2e\u001a?W%lSf\u001e*N:n\u0015}R&\u0012e9\u0017f\u001esD0rN\r\u001fR!hUw\u0016$F!iUk\u0016-B;t\u001ak\u001a)\u00076eHq_*HuuI`\r~6\u001dH l^kX*\u00079oUn_+WutR`_7C0nNl\u000b'\u0007%rUs\u0016:B' \\j\r~S=e\u001ap\f;Uu:\u001a\n:B3aOi\u000b\u0015B,"
         .length();
      char var1 = 22;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 106;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     String[] var9 = b;
                     ROUTED_FROM_PEER = b[16];
                     PROP_PKIX_CSR_DEFAULT_EXPIRY_AGE = var9[14];
                     AUTH_HEADER_NAME = var9[32];
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "G\u0018\u007f;\u0013:X :J~\u0017>Sv\u0010h;D5NtYj(\u00052Ma\u001bg;AT\u0011b-D\u001c@t\u001c|?\u001d{Eo\u001cx~\n4U \u001a~,\u0016>Ot\u0015r~\f:WeYj~\u0000>Ga\fg*D\u0018` \u0012n'D8Nn\u001fb9\u0011)DdW";
                  var4 = "G\u0018\u007f;\u0013:X :J~\u0017>Sv\u0010h;D5NtYj(\u00052Ma\u001bg;AT\u0011b-D\u001c@t\u001c|?\u001d{Eo\u001cx~\n4U \u001a~,\u0016>Ot\u0015r~\f:WeYj~\u0000>Ga\fg*D\u0018` \u0012n'D8Nn\u001fb9\u0011)DdW"
                     .length();
                  var1 = ' ';
                  var7 = -1;
            }

            var10000 = 52;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 21);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 52;
            case 1 -> 77;
            case 2 -> 63;
            case 3 -> 106;
            case 4 -> 80;
            case 5 -> 111;
            default -> 21;
         });
      }

      return new String(var10001).intern();
   }

   private static final class NoCaException extends Exception {
      static final long serialVersionUID = -6515174456756153779L;

      private NoCaException() {
      }

      private NoCaException(String var1, Throwable var2) {
         super(var1, var2);
      }
   }
}
