text: // Autogenerated from CppHeaderCreator
  // Created by Sc2ad
  // =========================================================================
  #pragma once
  // Begin includes
  #include "extern/beatsaber-hook/shared/utils/typedefs.h"
  // Including type: System.Int32
  #include "System/Int32.hpp"
  // Completed includes
  // Begin forward declares
  // Forward declaring namespace: GlobalNamespace
  namespace GlobalNamespace {
    // Forward declaring type: IDiffieHellmanKeyPair
    class IDiffieHellmanKeyPair;
  }
  // Forward declaring namespace: Org::BouncyCastle::Security
  namespace Org::BouncyCastle::Security {
    // Forward declaring type: SecureRandom
    class SecureRandom;
  }
  // Forward declaring namespace: Org::BouncyCastle::Crypto::Parameters
  namespace Org::BouncyCastle::Crypto::Parameters {
    // Forward declaring type: DHParameters
    class DHParameters;
    // Forward declaring type: ECDomainParameters
    class ECDomainParameters;
  }
  // Forward declaring namespace: System::Threading::Tasks
  namespace System::Threading::Tasks {
    // Forward declaring type: Task`1<TResult>
    template<typename TResult>
    class Task_1;
  }
  // Forward declaring namespace: Org::BouncyCastle::Crypto::Agreement
  namespace Org::BouncyCastle::Crypto::Agreement {
    // Forward declaring type: DHBasicAgreement
    class DHBasicAgreement;
    // Forward declaring type: ECDHBasicAgreement
    class ECDHBasicAgreement;
  }
  // Completed forward declares
  // Type namespace: 
  namespace GlobalNamespace {
    // Size: 0x10
    #pragma pack(push, 1)
    // Autogenerated type: DiffieHellmanUtility
    class DiffieHellmanUtility : public ::Il2CppObject {
      public:
      // Nested type: GlobalNamespace::DiffieHellmanUtility::KeyType
      struct KeyType;
      // Nested type: GlobalNamespace::DiffieHellmanUtility::DiffieHellmanKeyPair
      class DiffieHellmanKeyPair;
      // Nested type: GlobalNamespace::DiffieHellmanUtility::ElipticalCurveKeyPair
      class ElipticalCurveKeyPair;
      // Nested type: GlobalNamespace::DiffieHellmanUtility::OperationTimer
      class OperationTimer;
      // Creating value type constructor for type: DiffieHellmanUtility
      DiffieHellmanUtility() noexcept {}
      // static field const value: static public System.Int32 kMaxDiffieHellmanPublicKeyLength
      static constexpr const int kMaxDiffieHellmanPublicKeyLength = 2048;
      // Get static field: static public System.Int32 kMaxDiffieHellmanPublicKeyLength
      static int _get_kMaxDiffieHellmanPublicKeyLength();
      // Set static field: static public System.Int32 kMaxDiffieHellmanPublicKeyLength
      static void _set_kMaxDiffieHellmanPublicKeyLength(int value);
      // static field const value: static public System.Int32 kMaxElipticalCurvePublicKeyLength
      static constexpr const int kMaxElipticalCurvePublicKeyLength = 256;
      // Get static field: static public System.Int32 kMaxElipticalCurvePublicKeyLength
      static int _get_kMaxElipticalCurvePublicKeyLength();
      // Set static field: static public System.Int32 kMaxElipticalCurvePublicKeyLength
      static void _set_kMaxElipticalCurvePublicKeyLength(int value);
      // Get static field: static private Org.BouncyCastle.Security.SecureRandom _secureRandom
      static Org::BouncyCastle::Security::SecureRandom* _get__secureRandom();
      // Set static field: static private Org.BouncyCastle.Security.SecureRandom _secureRandom
      static void _set__secureRandom(Org::BouncyCastle::Security::SecureRandom* value);
      // [DoesNotRequireDomainReloadInitAttribute] Offset: 0xDEFADC
      // Get static field: static private Org.BouncyCastle.Crypto.Parameters.DHParameters _dhParameters
      static Org::BouncyCastle::Crypto::Parameters::DHParameters* _get__dhParameters();
      // Set static field: static private Org.BouncyCastle.Crypto.Parameters.DHParameters _dhParameters
      static void _set__dhParameters(Org::BouncyCastle::Crypto::Parameters::DHParameters* value);
      // [DoesNotRequireDomainReloadInitAttribute] Offset: 0xDEFAEC
      // Get static field: static private Org.BouncyCastle.Crypto.Parameters.ECDomainParameters _ecParameters
      static Org::BouncyCastle::Crypto::Parameters::ECDomainParameters* _get__ecParameters();
      // Set static field: static private Org.BouncyCastle.Crypto.Parameters.ECDomainParameters _ecParameters
      static void _set__ecParameters(Org::BouncyCastle::Crypto::Parameters::ECDomainParameters* value);
      // Get static field: static private System.Byte[] _ecPointFormats
      static ::Array<uint8_t>* _get__ecPointFormats();
      // Set static field: static private System.Byte[] _ecPointFormats
      static void _set__ecPointFormats(::Array<uint8_t>* value);
      // static public System.Threading.Tasks.Task`1<IDiffieHellmanKeyPair> GenerateKeysAsync(DiffieHellmanUtility/KeyType keyType)
      // Offset: 0x130DD8C
      static System::Threading::Tasks::Task_1<GlobalNamespace::IDiffieHellmanKeyPair*>* GenerateKeysAsync(GlobalNamespace::DiffieHellmanUtility::KeyType keyType);
      // static public IDiffieHellmanKeyPair GenerateKeys(DiffieHellmanUtility/KeyType keyType)
      // Offset: 0x130DE48
      static GlobalNamespace::IDiffieHellmanKeyPair* GenerateKeys(GlobalNamespace::DiffieHellmanUtility::KeyType keyType);
      // static private DiffieHellmanUtility/DiffieHellmanKeyPair GenerateDiffieHellmanKeys()
      // Offset: 0x130E020
      static GlobalNamespace::DiffieHellmanUtility::DiffieHellmanKeyPair* GenerateDiffieHellmanKeys();
      // static private DiffieHellmanUtility/ElipticalCurveKeyPair GenerateElipticalCurveKeys()
      // Offset: 0x130DECC
      static GlobalNamespace::DiffieHellmanUtility::ElipticalCurveKeyPair* GenerateElipticalCurveKeys();
      // static private System.Byte[] GetPreMasterSecret(Org.BouncyCastle.Crypto.Agreement.DHBasicAgreement dhBasicAgreement, System.Byte[] clientPublicKey)
      // Offset: 0x130E2B0
      static ::Array<uint8_t>* GetPreMasterSecret(Org::BouncyCastle::Crypto::Agreement::DHBasicAgreement* dhBasicAgreement, ::Array<uint8_t>* clientPublicKey);
      // static private System.Byte[] GetPreMasterSecret(Org.BouncyCastle.Crypto.Agreement.ECDHBasicAgreement ecdhBasicAgreement, System.Byte[] clientPublicKey)
      // Offset: 0x130E404
      static ::Array<uint8_t>* GetPreMasterSecret(Org::BouncyCastle::Crypto::Agreement::ECDHBasicAgreement* ecdhBasicAgreement, ::Array<uint8_t>* clientPublicKey);
      // static private System.Void .cctor()
      // Offset: 0x130E5A0
      static void _cctor();
    }; // DiffieHellmanUtility
    #pragma pack(pop)
  }
  #include "extern/beatsaber-hook/shared/utils/il2cpp-type-check.hpp"
  DEFINE_IL2CPP_ARG_TYPE(GlobalNamespace::DiffieHellmanUtility*, "", "DiffieHellmanUtility");
  