mac 1.0.0 → 1.0.1

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.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +4 -0
  4. data/lib/mac.rb +4 -0
  5. data/test/mac_test.rb +17 -0
  6. metadata +58 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8c78e4cd9f0ee48b31be15a0c68692735c6c6ef4bab6b68787c0b65052e2d10
4
- data.tar.gz: 2d7189ac699222bc97b1a0c80cafa183e174b37fec38b1d834d5c3be3e3da445
3
+ metadata.gz: 4877cf61c1e7df75ab432af4cd0e78278390f0ac8a61d2a59d8bd51208f75207
4
+ data.tar.gz: 8f622f976919faaabfbccd5bcc0dade0c3166eaf6750fb7bc02cfc02f0742d6f
5
5
  SHA512:
6
- metadata.gz: d221e300acfc8578f3dd2d148304a24444c8ccac090e2c605c02db46c475d35f0b94f88be56f2b67bbbd292893608d18cf322dbadb86fb2cc3d0c9bda3714329
7
- data.tar.gz: '084d2e9304f1a405afe9cfecb2ead7bc47c8eeaf09947577c3d9d7b2775bba148a5c31c8b05b099c273f9958eb093dac8288acaea720b824b533d4383c4bb16d'
6
+ metadata.gz: c881e11c07e4d9cd8045e5df534372998ef617ac8960f9b5340995ddd068370c0334ec290af510cf70653ec0b665ea5b686bb969b29854de4b7f13647828659c
7
+ data.tar.gz: 4575cac089235b92daa5ac448752e30da47e0525fd110b8eb00f91da428534233502886159bdf6683532df3c964975ede91d11534cc4496b1d77400d93a8f1f8
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [1.0.1] - 2026-06-17
2
+
3
+ - Add tests with 100% code coverage
4
+
1
5
  ## [1.0.0] - 2026-05-24
2
6
 
3
7
  - Initial release: Mac class with `sign` and `verify` methods.
data/README.md CHANGED
@@ -16,3 +16,7 @@ Verify a signed message:
16
16
  mac = Mac.new message:, secret:
17
17
  mac.signed? signature:, timestamp: # true
18
18
  ```
19
+
20
+ ## Tests
21
+
22
+ Run `bundle exec ruby -Itest test/mac_test.rb`
data/lib/mac.rb CHANGED
@@ -1,3 +1,7 @@
1
+ require 'base64'
2
+ require 'openssl'
3
+ require 'rack'
4
+
1
5
  # Provides methods to sign and verify timestamped messages with HMAC SHA256.
2
6
  class Mac
3
7
  # Sets up a message to be signed/verified with a secret.
data/test/mac_test.rb ADDED
@@ -0,0 +1,17 @@
1
+ require 'simplecov'
2
+ SimpleCov.start { minimum_coverage 100 }
3
+ require 'minitest/autorun'
4
+
5
+ require_relative '../lib/mac'
6
+
7
+ class MacTest < Minitest::Test
8
+ def test_with_hexdigest
9
+ mac = Mac.sign message: { foo: :bar }.to_json, secret: 'S3kr3t'
10
+ assert mac.signed? signature: mac.signature, timestamp: mac.timestamp
11
+ end
12
+
13
+ def test_without_hexdigest
14
+ mac = Mac.sign message: { foo: :bar }.to_json, secret: 'S3kr3t', hexdigest: false
15
+ assert mac.signed? signature: mac.signature, timestamp: mac.timestamp, hexdigest: false
16
+ end
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mac
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - claudiob
@@ -9,6 +9,34 @@ bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: base64
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: openssl
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
12
40
  - !ruby/object:Gem::Dependency
13
41
  name: rack
14
42
  requirement: !ruby/object:Gem::Requirement
@@ -23,6 +51,34 @@ dependencies:
23
51
  - - ">="
24
52
  - !ruby/object:Gem::Version
25
53
  version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: minitest
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: simplecov
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
26
82
  description: Enhances OpenSSL::HMAC with timestamp.
27
83
  email:
28
84
  - claudiob@users.noreply.github.com
@@ -34,6 +90,7 @@ files:
34
90
  - LICENSE.txt
35
91
  - README.md
36
92
  - lib/mac.rb
93
+ - test/mac_test.rb
37
94
  homepage: https://github.com/HouseAccountEng/mac
38
95
  licenses:
39
96
  - MIT