Class: OsslRsa::FileOp

Inherits:
Object
  • Object
show all
Defined in:
lib/ossl_rsa/file_op.rb

Overview

File process class.

Constant Summary collapse

PRIVATE_FILE =

private file.

"private"
PUBLIC_FILE =

public file.

"public"
PEM_EXTENSION =

pem extension.

".pem"
DER_EXTENSION =

der extension.

".der"

Class Method Summary collapse

Class Method Details

.create_file_name(file_name, add_now = false) ⇒ String

create file name.

Parameters:

  • file_name (String)

    file name.

  • add_now (booelan) (defaults to: false)

    add now date string flag.

Returns:

  • (String)

    file name



96
97
98
99
100
101
102
103
104
105
106
# File 'lib/ossl_rsa/file_op.rb', line 96

def self.create_file_name(file_name, add_now=false)

  # if add_now = false, return file_name

  return file_name unless add_now

  # add date string.

  if add_now
    file_name = "#{file_name}_#{DateTime.now.strftime('%Y%m%d%H%M%S')}"
  end
  file_name
end

.create_file_path(dir_path, mode, add_now = false) ⇒ Hash

create save file path.

Parameters:

  • dir_path (String)

    save dir path. absolute.

  • mode (integer)

    pem or der.

  • add_now (boolean) (defaults to: false)

    add now date string flag.

Returns:

  • (Hash)

    save file path pair. xxx = private file path, xxx = public file path.



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/ossl_rsa/file_op.rb', line 75

def self.create_file_path(dir_path, mode, add_now=false)

  # create file path.

  private_path = create_file_name(PRIVATE_FILE, add_now)
  public_path = create_file_name(PUBLIC_FILE, add_now)

  file_path_pair = nil
  # add extension.

  if mode == PEM
    file_path_pair = { private: File.join(dir_path, "#{private_path}#{PEM_EXTENSION}"), public: File.join(dir_path, "#{public_path}#{PEM_EXTENSION}")}
  elsif mode == DER
    file_path_pair = { private: File.join(dir_path, "#{private_path}#{DER_EXTENSION}"), public: File.join(dir_path, "#{public_path}#{DER_EXTENSION}")}
  end
      
  file_path_pair
end

.get_write_mode(mode) ⇒ String

get file write mode.

Parameters:

  • mode (integer)

    pem or der

Returns:

  • (String)

    write mode.



111
112
113
114
115
116
117
# File 'lib/ossl_rsa/file_op.rb', line 111

def self.get_write_mode(mode)

  # if pem, return w mode.

  return "w" if mode == PEM

  "wb"
end

.puts(file_path, write_mode, key_pair) ⇒ Object

write to file.

Parameters:

  • file_path (String)

    save file path.

  • write_mode (String)

    file write mode.

  • key_pair. (Hash)

    private and public key pair.



123
124
125
126
127
128
129
# File 'lib/ossl_rsa/file_op.rb', line 123

def self.puts(file_path, write_mode, key_pair)

  # write to file.

  File.open(file_path, write_mode) do |file|
    file.puts(key_pair[:private], key_pair[:public])
  end
end

.save(dir_path, key_pair, mode, add_now = false) ⇒ Hash

save file private and public key.

Parameters:

  • dir_path (String)

    save dir path. absolute.

  • key_pair (Hash)

    private and public key pair.

  • mode (integer)

    pem or der.

  • add_now (boolean) (defaults to: false)

    add now date string flag.

Returns:

  • (Hash)

    save file path pair. xxx = private file path, xxx = public file path.



24
25
26
27
28
29
30
# File 'lib/ossl_rsa/file_op.rb', line 24

def self.save(dir_path, key_pair, mode, add_now=false)

  file_path_pair = create_file_path(dir_path, mode, add_now)

  # save file.

  save_file(key_pair, file_path_pair, mode)
end

.save_file(key_pair, file_path_pair, mode) ⇒ Hash

save file private and public key.

Parameters:

  • key_pair. (Hash)

    private and public key pair.

  • file_path_pair (Hash)

    save file path pair. xxx = private file path, xxx = public file path.

  • mode (integer)

    pem or der.

Returns:

  • (Hash)

    save file path pair. xxx = private file path, xxx = public file path.



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/ossl_rsa/file_op.rb', line 49

def self.save_file(key_pair, file_path_pair, mode)

  save_path_pair = file_path_pair
  write_mode = get_write_mode(mode)

  # save file.

  unless key_pair[:private].nil?
    write(save_path_pair[:private], write_mode, key_pair[:private])
  else
    save_path_pair[:private] = nil
  end

  unless key_pair[:public].nil?
    write(save_path_pair[:public], write_mode, key_pair[:public])
  else
    save_path_pair[:public] = nil
  end

  save_path_pair
end

.save_one_file(file_path, key_pair, mode) ⇒ Object

save one file.

Parameters:

  • file_path (String)

    save file path.

  • key_pair. (Hash)

    private and public key pair.

  • mode (integer)

    pem or der.



36
37
38
39
40
41
42
# File 'lib/ossl_rsa/file_op.rb', line 36

def self.save_one_file(file_path, key_pair, mode)

  write_mode = get_write_mode(mode)

  # save file.

  puts(file_path, write_mode, key_pair)
end

.write(file_path, write_mode, key) ⇒ Object

write to file.

Parameters:

  • file_path (String)

    save file path.

  • write_mode (String)

    file write mode

  • key (String)

    save key.



135
136
137
138
139
140
141
# File 'lib/ossl_rsa/file_op.rb', line 135

def self.write(file_path, write_mode, key)

  # write to file.

  File.open(file_path, write_mode) do |file|
    file.write(key)
  end
end