Module: Metafusion::Crypto

Defined in:
lib/metafusion/crypto/base.rb,
lib/metafusion/crypto.rb

Overview

Module that contains Cryptography helper methods and the Metafusion::Crypto::Key class to be utilized in public key encryption.

Defined Under Namespace

Modules: Version Classes: DigitalSignature, Meta, PrivateKey

Class Method Summary collapse

Class Method Details

.generate_key_pair(private_file = "rsa_key", public_file = "#{private_file}.pub", bits = 512, clean = true) ⇒ Object

Generate private and public keys

  1. private_file - file name of private key to generate (default = “rsa_key”)

  2. public_file - file name of public key to generate (default = “#private_key.pub”)

  3. bits - number of bits for key (default = 1024)

  4. clean - specifies if existing key files should zapped and replaced by newly generated keys (default = true)

Returns the private key generated.

Usage:

priv_key = Metafusion::Crypto.generate_key_pair


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/metafusion/crypto/base.rb', line 24

def self.generate_key_pair(private_file = "rsa_key", 
                       public_file = "#{private_file}.pub", 
                       bits = 512, clean = true)
  if clean
    File.delete(private_file) if File.exists?(private_file)
    File.delete(public_file) if File.exists?(public_file)
  end
  private_key = OpenSSL::PKey::RSA.new(bits)
  File.open(private_file, "w+") do |fp| 
    fp << private_key.to_s
  end
  File.open(public_file,  "w+") do |fp| 
    fp << private_key.public_key.to_s
  end
  private_key
end