56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
defmodule Mix.Tasks.Phx.Gen.Auth.HashingLibrary do
 | 
						|
  @moduledoc false
 | 
						|
 | 
						|
  defstruct [:name, :module, :mix_dependency, :test_config]
 | 
						|
 | 
						|
  @type t :: %__MODULE__{
 | 
						|
          name: atom(),
 | 
						|
          module: module(),
 | 
						|
          mix_dependency: binary(),
 | 
						|
          test_config: binary()
 | 
						|
        }
 | 
						|
 | 
						|
  def build("bcrypt") do
 | 
						|
    lib = %__MODULE__{
 | 
						|
      name: :bcrypt,
 | 
						|
      module: Bcrypt,
 | 
						|
      mix_dependency: ~s|{:bcrypt_elixir, "~> 3.0"}|,
 | 
						|
      test_config: """
 | 
						|
      config :bcrypt_elixir, :log_rounds, 1
 | 
						|
      """
 | 
						|
    }
 | 
						|
 | 
						|
    {:ok, lib}
 | 
						|
  end
 | 
						|
 | 
						|
  def build("pbkdf2") do
 | 
						|
    lib = %__MODULE__{
 | 
						|
      name: :pbkdf2,
 | 
						|
      module: Pbkdf2,
 | 
						|
      mix_dependency: ~s|{:pbkdf2_elixir, "~> 2.0"}|,
 | 
						|
      test_config: """
 | 
						|
      config :pbkdf2_elixir, :rounds, 1
 | 
						|
      """
 | 
						|
    }
 | 
						|
 | 
						|
    {:ok, lib}
 | 
						|
  end
 | 
						|
 | 
						|
  def build("argon2") do
 | 
						|
    lib = %__MODULE__{
 | 
						|
      name: :argon2,
 | 
						|
      module: Argon2,
 | 
						|
      mix_dependency: ~s|{:argon2_elixir, "~> 3.0"}|,
 | 
						|
      test_config: """
 | 
						|
      config :argon2_elixir, t_cost: 1, m_cost: 8
 | 
						|
      """
 | 
						|
    }
 | 
						|
 | 
						|
    {:ok, lib}
 | 
						|
  end
 | 
						|
 | 
						|
  def build(other) do
 | 
						|
    {:error, {:unknown_library, other}}
 | 
						|
  end
 | 
						|
end
 |