Skip to content

Commit cab967f

Browse files
committed
🔒️ SHA256 and SHA512 checksums
1 parent c282746 commit cab967f

File tree

5 files changed

+68
-9
lines changed

5 files changed

+68
-9
lines changed

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
1010
### Fixed
1111
### Removed
1212

13-
## [Unreleased]
13+
## [2.0.1] - 2022-09-23 ([tag][2.0.1t])
14+
### Added
15+
- Certificate for signing gem releases (@pboling)
16+
- Gemspec metadata (@pboling)
17+
- funding_uri
18+
- mailing_list_uri
19+
- Checksums for released gems (@pboling)
20+
### Changed
21+
- Gem releases are now cryptographically signed (@pboling)
1422

1523
## [2.0.0] - 2022-08-29 ([tag][2.0.0t])
1624
### Changed

Gemfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ PATH
33
specs:
44
snaky_hash (2.0.0)
55
hashie
6-
version_gem (~> 1.1)
6+
version_gem (~> 1.1, >= 1.1.1)
77

88
GEM
99
remote: https://rubygems.org/
@@ -39,13 +39,13 @@ GEM
3939
rspec-core
4040
rspec-core (3.11.0)
4141
rspec-support (~> 3.11.0)
42-
rspec-expectations (3.11.0)
42+
rspec-expectations (3.11.1)
4343
diff-lcs (>= 1.2.0, < 2.0)
4444
rspec-support (~> 3.11.0)
4545
rspec-mocks (3.11.1)
4646
diff-lcs (>= 1.2.0, < 2.0)
4747
rspec-support (~> 3.11.0)
48-
rspec-support (3.11.0)
48+
rspec-support (3.11.1)
4949
rubocop (0.68.1)
5050
jaro_winkler (~> 1.5.1)
5151
parallel (~> 1.10)
@@ -82,7 +82,7 @@ GEM
8282
simplecov-lcov (0.8.0)
8383
simplecov_json_formatter (0.1.4)
8484
unicode-display_width (1.5.0)
85-
version_gem (1.1.0)
85+
version_gem (1.1.1)
8686
webrick (1.7.0)
8787
yard (0.9.28)
8888
webrick (~> 1.7.0)

bin/checksum

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env ruby
2+
# frozen_string_literal: true
3+
4+
require "digest/sha2"
5+
gems = Dir["*.gem"]
6+
puts "Found: #{gems.inspect}"
7+
raise "No Gems" if gems.length.zero?
8+
raise "Too Many Gems" if gems.length > 1
9+
10+
built_gem_path = gems.first
11+
checksum512 = Digest::SHA512.new.hexdigest(File.read(built_gem_path))
12+
checksum512_path = "checksums/#{built_gem_path}.sha512"
13+
File.write(checksum512_path, checksum512)
14+
15+
checksum256 = Digest::SHA256.new.hexdigest(File.read(built_gem_path))
16+
checksum256_path = "checksums/#{built_gem_path}.sha256"
17+
File.write(checksum256_path, checksum256)
18+
19+
puts "You must now git add and commit '#{checksum256_path}' and '#{checksum512_path}'"

certs/pboling.pem

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
3+
ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
4+
A2NvbTAeFw0yMjA5MTgyMzEyMzBaFw0yMzA5MTgyMzEyMzBaMEMxFTATBgNVBAMM
5+
DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
6+
LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2Dn1GM3W
7+
8K2/rvN1zz+06bQMcxD16ZKTihVwi7Pb1v3T98rM4Omnxohm3s+CwpDWGeiB9pj6
8+
0I/CTce0e4e3s8GKJSOrg93veImPSoH2PfsMsRsuB8wtqyiOCjLbF5o6S29x87r0
9+
LA5EawH+Lh4xqrkkPjdffsmLk7TaCig/vlmNvnzxXKBdey/X/aEJZXzzBiWRfVdh
10+
O1fmMbVKyieGv9HK7+pLotIoT08bjDv8NP6V7zZslwQRqW27bQc6cqC2LGIbTYO3
11+
3jt1kQxfMWmhOictS6SzG9VtKSrXf0L4Neq0Gh7CLBZBvJFWJYZPfb92YNITDbd8
12+
emPOAQlXXNMN4mMXsEqtEhCPZRMnmwO+fOk/cC4AyglKi9lnQugCQoFV1XDMZST/
13+
CYbzdQyadOdPDInTntG6V+Uw51d2QGXZ6PDDfrx9+toc/3sl5h68rCUGgE6Q3jPz
14+
srinqmBsxv2vTpmd4FjmiAtEnwH5/ooLpQYL8UdAjEoeysxS3AwIh+5dAgMBAAGj
15+
fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQWU6D156a2cle+
16+
lb5RBfvVXlxTwjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
17+
A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
18+
ggGBAJ4SqhPlgUiLYIrphGXIaxXScHyvx4kixuvdrwhI4VoQV2qXvO7R6ZjOXVwX
19+
f/z84BWPiTZ8lzThPbt1UV/BGwkvLw9I4RjOdzvUz3J42j9Ly6q63isall07bo3F
20+
QWe/OBvIMBF1IbjC3q5vKPg4rq8+TkNRJNoE86U2gfR+PkW3jYYs9uiy0GloHDCP
21+
k5xgaj0vSL0Uy5mTOPdk3K6a/sUGZyYniWK05zdhIi956ynhfGaFO988FFdVw5Jq
22+
LHtXfIpAU8F7ES04syZSslxOluw7VlcSKyRdVIr737J92ZTduppB4PRGSKRgBsWV
23+
hXTahRE72Kyw53Q7FAuzF3v102WxAAQ7BuMjW+MyCUT75fwPm3W4ELPL8HYkNGE7
24+
2oA5CPghFitRnvYS3GNrDG+9bNiRMEskeaBYwZ9UgReBQIwGYVj7LZk3UhiAsn44
25+
gwGrEXGQGDZ0NIgBcmvMOqlXjkGQwQvugKycJ024z89+fz2332vdZIKTrSxJrXGk
26+
4/bR9A==
27+
-----END CERTIFICATE-----

snaky_hash.gemspec

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,31 @@
33
require_relative "lib/snaky_hash/version"
44

55
Gem::Specification.new do |spec|
6+
spec.cert_chain = ["certs/pboling.pem"]
7+
spec.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $PROGRAM_NAME.end_with?("gem")
8+
69
spec.add_dependency "hashie"
7-
spec.add_dependency "version_gem", "~> 1.1"
10+
spec.add_dependency "version_gem", ["~> 1.1", ">= 1.1.1"]
811

912
spec.name = "snaky_hash"
1013
spec.version = SnakyHash::Version::VERSION
1114
spec.authors = ["Peter Boling"]
12-
spec.email = ["[email protected]"]
15+
1316

1417
spec.summary = "A very snaky hash"
1518
spec.description = "A Hashie::Mash joint to make #snakelife better"
16-
spec.homepage = "https://gitlab.com/oauth-xx/snaky_hash"
1719
spec.license = "MIT"
1820
spec.required_ruby_version = ">= 2.2"
1921

22+
spec.homepage = "https://gitlab.com/oauth-xx/snaky_hash"
2023
spec.metadata["homepage_uri"] = spec.homepage
2124
spec.metadata["source_code_uri"] = "#{spec.homepage}/-/tree/v#{spec.version}"
2225
spec.metadata["changelog_uri"] = "#{spec.homepage}/-/blob/v#{spec.version}/CHANGELOG.md"
2326
spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/-/issues"
2427
spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}"
25-
spec.metadata["wiki_uri"] = "#{spec.homepage}/-/wikis/home"
28+
spec.metadata["wiki_uri"] = "#{spec.homepage}/-/wiki"
29+
spec.metadata["mailing_list_uri"] = "https://groups.google.com/g/oauth-ruby"
30+
spec.metadata["funding_uri"] = "https://liberapay.com/pboling"
2631
spec.metadata["rubygems_mfa_required"] = "true"
2732

2833
spec.files = Dir[

0 commit comments

Comments
 (0)