rsaa 0.0.1 → 0.0.4

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: 458ee1588e8bfc481e1c47cbbc7317b34ee410d5f14a7396ffc21e7c422ff2e4
4
- data.tar.gz: b6a63cbb3d66543fbdaa32e33b7849134672d6340f2d529b49d1c881aa880a57
3
+ metadata.gz: 40170f194f53574fb33f074cda112a0cb8c8d310b88ad72b0d87925298b622b4
4
+ data.tar.gz: f7df7b848a8f80bd1c1918d5953ed0bc087880e4bddb20685547b2063f3083af
5
5
  SHA512:
6
- metadata.gz: cca22bfd8ee84681bc0d00bc33cbd2310359928ba4920c863f9c222a65be89f9e2f293b02215a965c507a0a41edb7ae63a5f9e198e64e5ebe82419f46c55df3e
7
- data.tar.gz: 24229fab98294d34af9ea15ba3065ec74ad6557e96267088b24bd23e2648f22e27c3ea745d9dbdd0e945d3834189b76f674e02e64363d329bc60daa91206330b
6
+ metadata.gz: 5f90287d434b74d486df2e430d650e8073eaf4a58fadc3ffaa8e525674747d38f6444e41d38cecb6db394ece9977ccffe2cd08e4dadefb0d27122bdcd99cb3cb
7
+ data.tar.gz: bf4a405dc3d4d5cf07263ca264b5bf39e047a12edeaba74c6dd19ce435bd1ecf2a49217b1f5a7afa055b169563b8689955f29cc044676a201c4ccdf7177ae2dd
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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsaa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dayan Freitas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-24 00:00:00.000000000 Z
11
+ date: 2022-06-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ''
14
14
  email: dayan.freitas.df@gmail.com.br
@@ -16,8 +16,12 @@ 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
- homepage: https://rubygems.org/gems/rsa
24
+ homepage: https://github.com/Dayanfreitas/RSA
21
25
  licenses:
22
26
  - MIT
23
27
  metadata: {}