Module: RSA
Defined Under Namespace
Modules: OPEN
Classes: Private, Public
Class Method Summary
collapse
Class Method Details
.decode(menssage_encode) ⇒ Object
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
|
# File 'lib/rsa.rb', line 185
def self.decode(menssage_encode)
d = nil
n = nil
if RSA::OPEN::Private.d && RSA::OPEN::Private.n
d = RSA::OPEN::Private.d
n = RSA::OPEN::Private.n
else
archive_private = ArchivePrivate.new
private_file = archive_private.read
d = private_file[:key_d].to_i
n = private_file[:key_p].to_i * private_file[:key_q].to_i
end
menssage_decode = menssage_encode.map { |block|
original_chunk = block.to_i.mod_pow(d, n)
TextChunk.new(original_chunk).to_s
}.join
MessageCompile.back_pre_compile(menssage_decode)
end
|
.encode(menssage) ⇒ Object
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
# File 'lib/rsa.rb', line 162
def self.encode(menssage)
e = nil
n = nil
if RSA::OPEN::Public.e && RSA::OPEN::Public.n
e = RSA::OPEN::Public.e
n = RSA::OPEN::Public.n
else
archive_public = ArchivePublic.new
file = archive_public.read
e = file[:e].to_i
n = file[:key_n].to_i
end
chunk_size = TextChunk.block_size(n)
split_in_regex = /.{1,#{chunk_size}}/
pre_compile = MessageCompile.pre_compile(menssage)
array_chunk = pre_compile.scan(split_in_regex)
array_chunk.map { |chunk|
TextChunk.new(chunk).to_i.mod_pow(e, n)
}
end
|
.generated ⇒ Object
146
147
148
149
150
151
152
|
# File 'lib/rsa.rb', line 146
def self.generated
private = RSA::Private.new
public = RSA::Public.new(private: private)
private.create_file_of_keys
public.create_file_of_keys
end
|
.generated_open_keys ⇒ Object
154
155
156
157
158
159
160
|
# File 'lib/rsa.rb', line 154
def self.generated_open_keys
private = RSA::Private.new
public = RSA::Public.new(private: private)
private.create_file(ArchivePrivateOpen.new)
public.create_file(ArchivePublicOpen.new)
end
|