unclesp1d3r/CipherSwarm

View on GitHub

Showing 487 of 487 total issues

Class Attack has 31 methods (exceeds 20 allowed). Consider refactoring.
Open

class Attack < ApplicationRecord
acts_as_paranoid # Soft deletes the attack
 
##
# Associations
Severity: Minor
Found in app/models/attack.rb - About 3 hrs to fix

Method perform has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
Confirmed

def perform(id)
list = HashList.find(id)
return if list.processed?
 
HashList.transaction do
Severity: Minor
Found in app/jobs/process_hash_list_job.rb - About 3 hrs to fix

File attack.rb has 272 lines of code (exceeds 250 allowed). Consider refactoring.
Open

class Attack < ApplicationRecord
acts_as_paranoid # Soft deletes the attack
 
##
# Associations
Severity: Minor
Found in app/models/attack.rb - About 2 hrs to fix

Method submit_status has 62 lines of code (exceeds 25 allowed). Consider refactoring.
Open

def submit_status
@task = @agent.tasks.find(params[:id])
@task.update(activity_timestamp: Time.zone.now)
status = @task.hashcat_statuses.build({
original_line: params[:original_line],
Severity: Major
Found in app/controllers/api/v1/client/tasks_controller.rb - About 2 hrs to fix

Method new_task has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
Open

def new_task
# Immediately return the first incomplete task if there's no fatal errors for it.
incomplete_task = tasks.incomplete.find do |task|
!agent_errors.exists?(severity: :fatal, task_id: task.id) && task.uncracked_remaining
end
Severity: Minor
Found in app/models/agent.rb - About 2 hrs to fix

Method submit_error has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
Open

def submit_error
if @agent.blank?
render json: { error: "Agent not found" }, status: :not_found
return
end
Severity: Minor
Found in app/controllers/api/v1/client/agents_controller.rb - About 1 hr to fix

Method check_for_cracker_update has 44 lines of code (exceeds 25 allowed). Consider refactoring.
Open

def check_for_cracker_update
current_version = params[:version]
operating_system = params[:operating_system]
 
if current_version.blank? || current_version.nil?
Severity: Minor
Found in app/controllers/api/v1/client/crackers_controller.rb - About 1 hr to fix

Method calculate_mask_candidates has 43 lines of code (exceeds 25 allowed). Consider refactoring.
Open

def self.calculate_mask_candidates(mask_line)
require "bigdecimal"
 
charset_counts = {
"?a" => 95, # All printable ASCII characters
Severity: Minor
Found in lib/mask_calculation_methods.rb - About 1 hr to fix

Method calculate_mask_candidates has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
Open

def self.calculate_mask_candidates(mask_line)
require "bigdecimal"
 
charset_counts = {
"?a" => 95, # All printable ASCII characters
Severity: Minor
Found in lib/mask_calculation_methods.rb - About 1 hr to fix

Method submit_status has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
Open

def submit_status
@task = @agent.tasks.find(params[:id])
@task.update(activity_timestamp: Time.zone.now)
status = @task.hashcat_statuses.build({
original_line: params[:original_line],
Severity: Minor
Found in app/controllers/api/v1/client/tasks_controller.rb - About 1 hr to fix

Method submit_error has 35 lines of code (exceeds 25 allowed). Consider refactoring.
Open

def submit_error
if @agent.blank?
render json: { error: "Agent not found" }, status: :not_found
return
end
Severity: Minor
Found in app/controllers/api/v1/client/agents_controller.rb - About 1 hr to fix

Method new_task has 31 lines of code (exceeds 25 allowed). Consider refactoring.
Open

def new_task
# Immediately return the first incomplete task if there's no fatal errors for it.
incomplete_task = tasks.incomplete.find do |task|
!agent_errors.exists?(severity: :fatal, task_id: task.id) && task.uncracked_remaining
end
Severity: Minor
Found in app/models/agent.rb - About 1 hr to fix

Method submit_crack has 31 lines of code (exceeds 25 allowed). Consider refactoring.
Open

def submit_crack
timestamp = params[:timestamp]
hash = params[:hash]
plain_text = params[:plain_text]
 
 
Severity: Minor
Found in app/controllers/api/v1/client/tasks_controller.rb - About 1 hr to fix

Method submit_benchmark has 28 lines of code (exceeds 25 allowed). Consider refactoring.
Open

def submit_benchmark
# There's a weird bug where the JSON is sometimes in the body and as a param.
if params[:hashcat_benchmarks].nil?
render json: { error: "No benchmarks submitted" }, status: :bad_request
return
Severity: Minor
Found in app/controllers/api/v1/client/agents_controller.rb - About 1 hr to fix

Method perform has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
Open

def perform(mask_list_id)
mask_list = MaskList.find(mask_list_id)
return if mask_list.nil? || mask_list.file.nil? || mask_list.complexity_value != 0
 
total_combinations = 0
Severity: Minor
Found in app/jobs/calculate_mask_complexity_job.rb - About 55 mins to fix

Method check_for_newer has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
Open

def check_for_newer(operating_system_name, version_string)
# Convert the version string to a semantic version.
sem_version = CrackerBinary.to_semantic_version(version_string)
 
# Return nil if the version string is invalid.
Severity: Minor
Found in app/models/cracker_binary.rb - About 55 mins to fix

Method check_for_cracker_update has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
Open

def check_for_cracker_update
current_version = params[:version]
operating_system = params[:operating_system]
 
if current_version.blank? || current_version.nil?
Severity: Minor
Found in app/controllers/api/v1/client/crackers_controller.rb - About 55 mins to fix

HashListsController has at least 6 instance variables
Open

class HashListsController < ApplicationController

CalculateMaskComplexityJob#perform contains iterators nested 2 deep
Open

file.each_line do |line|

HashList#uncracked_list refers to 'hash_lines' more than self (maybe move it to another class?)
Open

hash_lines << "#{h}"
end
hash_lines.join("\n")
Severity: Minor
Found in app/models/hash_list.rb by reek
Severity
Category
Status
Source
Language