package com.l7tech.policy.assertion;

import com.l7tech.security.saml.NameIdentifierInclusionType;
import com.l7tech.security.xml.KeyInfoInclusionType;
import java.util.EnumSet;
import org.jetbrains.annotations.Nullable;

public interface SamlElementGenericConfig extends SamlIssuerConfig, SamlVersionConfig {
   boolean isSignAssertion();

   void setSignAssertion(boolean var1);

   EnumSet<SamlElementGenericConfig.DecorationType> getDecorationTypes();

   void setDecorationTypes(EnumSet<SamlElementGenericConfig.DecorationType> var1);

   String getSubjectConfirmationMethodUri();

   void setSubjectConfirmationMethodUri(String var1);

   KeyInfoInclusionType getSubjectConfirmationKeyInfoType();

   void setSubjectConfirmationKeyInfoType(KeyInfoInclusionType var1);

   NameIdentifierInclusionType getNameIdentifierType();

   void setNameIdentifierType(NameIdentifierInclusionType var1);

   String getNameIdentifierValue();

   void setNameIdentifierValue(@Nullable String var1);

   String getNameIdentifierFormat();

   void setNameIdentifierFormat(@Nullable String var1);

   int getConditionsNotBeforeSecondsInPast();

   void setConditionsNotBeforeSecondsInPast(int var1);

   int getConditionsNotOnOrAfterExpirySeconds();

   void setConditionsNotOnOrAfterExpirySeconds(int var1);

   String getSubjectConfirmationDataRecipient();

   void setSubjectConfirmationDataRecipient(String var1);

   String getSubjectConfirmationDataAddress();

   void setSubjectConfirmationDataAddress(String var1);

   String getSubjectConfirmationDataInResponseTo();

   void setSubjectConfirmationDataInResponseTo(String var1);

   int getSubjectConfirmationDataNotBeforeSecondsInPast();

   void setSubjectConfirmationDataNotBeforeSecondsInPast(int var1);

   int getSubjectConfirmationDataNotOnOrAfterExpirySeconds();

   void setSubjectConfirmationDataNotOnOrAfterExpirySeconds(int var1);

   enum DecorationType {
      REQUEST,
      RESPONSE,
      ADD_ASSERTION,
      SIGN_ASSERTION,
      SIGN_BODY;

      // $VF: Failed to inline enum fields
      // 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!)
      static {
         String[] var0 = new String[5];
         int var4 = 0;
         String var3 = "gy\u001c@E^ep\tfu\b^URyqe\rtx\u000bOKCepn\u001bYE^";
         int var5 = "gy\u001c@E^ep\tfu\b^URyqe\rtx\u000bOKCepn\u001bYE^".length();
         char var2 = '\b';
         int var7 = -1;

         label25:
         while (true) {
            byte var10000 = 99;
            String var10001 = var3.substring(++var7, var7 + var2);
            byte var10002 = -1;

            while (true) {
               String var8 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var0[var4++] = var8;
                     if ((var7 += var2) >= var5) {
                        REQUEST = new SamlElementGenericConfig.DecorationType();
                        RESPONSE = new SamlElementGenericConfig.DecorationType();
                        ADD_ASSERTION = new SamlElementGenericConfig.DecorationType();
                        SIGN_ASSERTION = new SamlElementGenericConfig.DecorationType();
                        SIGN_BODY = new SamlElementGenericConfig.DecorationType();
                        return;
                     }

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

                     var3 = "RA<jaeQRM)pwkL\u0007SM*q{wV";
                     var5 = "RA<jaeQRM)pwkL\u0007SM*q{wV".length();
                     var2 = 14;
                     var7 = -1;
               }

               var10000 = 87;
               var10001 = var3.substring(++var7, var7 + var2);
               var10002 = 0;
            }
         }
      }

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

         return var10000;
      }

      private static String a(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 -> 86;
               case 1 -> 95;
               case 2 -> 44;
               case 3 -> 115;
               case 4 -> 105;
               case 5 -> 115;
               default -> 85;
            });
         }

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