module RevbitsPamCicd::Secure

Public Class Methods

decrypt(secret, encrypted_value) click to toggle source

@return [String] decrypted value

# File lib/revbits_pam_cicd/secure.rb, line 28
def decrypt(secret, encrypted_value)
  AES256.decrypt(encrypted_value.to_s, secret.to_s)
end
private_keys() click to toggle source

@return [Array] ‘private_keys`

# File lib/revbits_pam_cicd/secure.rb, line 9
def private_keys
  # key_a, key_b
  [rand(2..9), rand(2..9)]
end
public_keys(private_key_a, private_key_b, secret_creators) click to toggle source

@return [Array] ‘public_keys`

# File lib/revbits_pam_cicd/secure.rb, line 15
def public_keys(private_key_a, private_key_b, secret_creators)
  [public_key_a(private_key_a, secret_creators), public_key_b(private_key_b, secret_creators)]
end
secret(encrypted_values, private_key_a, private_key_b, secret_creators) click to toggle source

@return [Integer] ‘secret`

# File lib/revbits_pam_cicd/secure.rb, line 20
def secret(encrypted_values, private_key_a, private_key_b, secret_creators)
  shared_key_a = shared_key_a(encrypted_values.dig('keyA'), private_key_a, secret_creators.dig(:prime))
  shared_key_b = shared_key_b(encrypted_values.dig('keyB'), private_key_b, secret_creators.dig(:prime))

  shared_key_a ** shared_key_b
end

Private Class Methods

public_key_a(public_key_a, secret_creators) click to toggle source
# File lib/revbits_pam_cicd/secure.rb, line 42
def public_key_a(public_key_a, secret_creators)
  (secret_creators.dig(:generated) ** public_key_a) % secret_creators.dig(:prime)
end
public_key_b(public_key_b, secret_creators) click to toggle source
# File lib/revbits_pam_cicd/secure.rb, line 46
def public_key_b(public_key_b, secret_creators)
  (secret_creators.dig(:generated) ** public_key_b) % secret_creators.dig(:prime)
end
shared_key_a(key_a, private_key_a, prime) click to toggle source
# File lib/revbits_pam_cicd/secure.rb, line 34
def shared_key_a(key_a, private_key_a, prime)
  (key_a ** private_key_a) % prime
end
shared_key_b(key_b, private_key_b, prime) click to toggle source
# File lib/revbits_pam_cicd/secure.rb, line 38
def shared_key_b(key_b, private_key_b, prime)
  (key_b ** private_key_b) % prime
end