rsaa 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5338c1172c5f94ee70591af243777057bc32120830fbb45429bc6d743f0ddac
4
- data.tar.gz: 7a451e70fcb928ed3c35734c089a8a59be34d0899783e06f8e5dd5eaf3abe26f
3
+ metadata.gz: 00115f054e9aee028da61f24c199e959c8af1227a745da11a2615ac014151c51
4
+ data.tar.gz: 00d6ca6530b01f8dd53e060e3f7115f4e65788cf51d063f3b3177086a8af6696
5
5
  SHA512:
6
- metadata.gz: 1993ed77baef4bef128771d5f15b8e499c7190bdd31a5161fa49c1f414fdd01cac8ab4dad78d26d868db31b216aae6a498a48acb8536a08c13fd09eb45f31f59
7
- data.tar.gz: 132934d92f7fd84326775b95c426ddac6c7651686bf2d8061072f46693ad5c10bf88793d35819c0efb4a5a153446599cd9d81f3231c8a487d6823cc303c63220
6
+ metadata.gz: f1b37eb181b0d6eb5d1e6820252a7676ce0bc18b8c0d890273ced3125faaf5c0f1bb701343d921402694c4bbc0278e9f6fcbb8d9072e2022b60f1f2d0df4eddc
7
+ data.tar.gz: ce9df6b9f4f9e3b5fa8858ffce9db550cdd751cf42b2b1e4c0a0f11c2e15b04997f72aef338427b49b703d152b12155fc0807c2235a6afa04484af07423f896a
data/lib/archive.rb ADDED
@@ -0,0 +1,33 @@
1
+ require "base64"
2
+
3
+ class Archive
4
+ ROOT_PATH_FILE = "./"
5
+ EXTENSION_FILE = ".txt"
6
+ MODE_WRITE = "w"
7
+
8
+ attr_reader :name, :path
9
+
10
+ def read
11
+ raise "Not implement"
12
+ end
13
+
14
+ def write
15
+ raise "Not implement"
16
+ end
17
+
18
+ def set_name(name)
19
+ @name = name
20
+ end
21
+
22
+ def full_name
23
+ "#{@name}#{EXTENSION_FILE}"
24
+ end
25
+
26
+ def encode(string)
27
+ Base64.encode64(string)
28
+ end
29
+
30
+ def decode(string)
31
+ Base64.decode64(string)
32
+ end
33
+ end
@@ -0,0 +1,19 @@
1
+ require_relative './archive'
2
+
3
+ class ArchivePrivate < Archive
4
+ FILE_NAME = 'private'
5
+ def initialize
6
+ set_name(FILE_NAME)
7
+ end
8
+
9
+ def read
10
+ file = File.open full_name
11
+ decode file.read
12
+ end
13
+
14
+ def write(text)
15
+ file = File.open(full_name, Archive::MODE_WRITE)
16
+ file.puts encode text
17
+ file.close
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ require_relative './archive'
2
+
3
+ class ArchivePublic < Archive
4
+ FILE_NAME = 'public'
5
+ def initialize
6
+ set_name(FILE_NAME)
7
+ end
8
+
9
+ def read
10
+ file = File.open full_name
11
+ decode file.read
12
+ end
13
+
14
+ def write(text)
15
+ file = File.open(full_name, Archive::MODE_WRITE)
16
+ file.puts encode text
17
+ file.close
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ require 'prime'
2
+
3
+ class Mathematics
4
+ LIMIT = 100
5
+ @number_primes = Prime.take(LIMIT)
6
+
7
+ def self.random_prime
8
+ number_random = rand(LIMIT)
9
+ @number_primes[number_random]
10
+ end
11
+
12
+ def self.pow(n, e)
13
+ n ** e
14
+ end
15
+
16
+ def self.mod(dividend, divider)
17
+ dividend % divider
18
+ end
19
+
20
+ def self.is_multiplicative_inverse?(term1, term2)
21
+ # (i * e) % @totiente_n == 1
22
+ mod(term1, term2) == 1
23
+ end
24
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsaa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dayan Freitas
@@ -16,6 +16,10 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - lib/archive.rb
20
+ - lib/archive_private.rb
21
+ - lib/archive_public.rb
22
+ - lib/mathematics.rb
19
23
  - lib/rsa.rb
20
24
  homepage: https://rubygems.org/gems/rsaa
21
25
  licenses: