x25519 1.0.10 → 1.0.11

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: 7b02674dff65b61427949152e152de05626d7f165fed9dc8e8ef49a8a409de77
4
- data.tar.gz: 6ea193c186474a16d7a495a2ab6988fd282789076cc97ffcb6e43337553b218e
3
+ metadata.gz: 7719a7281f05c567dfa75374f3b90fa50458b275f412a25cf477bcd80f64af93
4
+ data.tar.gz: a0337f7cde547afc62e96e312524f203a47d36ffd0c5eae18b6cb369ca6e04de
5
5
  SHA512:
6
- metadata.gz: 4ecc2260f15c22112bf6f57f2d9e6a2c2fa7dd81ae6827ebb90e9f6ea41e103b3d3778ef03e03eda27aa1b60be3baeb7d7e548b0633735d0fe732c6098f7447c
7
- data.tar.gz: ee3f4f15b3ee69475bfeb776dabd50b9f7290aa9d25352f2521485ebeaab206ae00daa4264307dfce90b194c34d1342e4bc2e167dccd6273b85df0a3adf72f36
6
+ metadata.gz: 91c1d55aef2dc504c442060db5c89be79ea78d3029c674cff3dab5ebca9b6a083bfee7e4fcf1d925680b4fdd6d3a9aa45743e40bf67d93ed6fb216cc3b02e356
7
+ data.tar.gz: 7baa70cd16de2d839b1eea86044712ea0d577922237f22985d5c85caa77ad49ea28448e1c72f29cea024c90e1c449bbcefea638d111f05bcc051efaa47c6b300
@@ -5,7 +5,6 @@ on:
5
5
  paths-ignore:
6
6
  - README.md
7
7
  push:
8
- branches: main
9
8
  paths-ignore:
10
9
  - README.md
11
10
 
@@ -16,14 +15,18 @@ jobs:
16
15
  test:
17
16
  runs-on: ubuntu-latest
18
17
  strategy:
18
+ fail-fast: false
19
19
  matrix:
20
20
  ruby:
21
- - ruby-2.5
22
- - ruby-2.6
23
21
  - ruby-2.7
24
22
  - ruby-3.0
23
+ - ruby-3.1
24
+ - ruby-3.2
25
+ - ruby-3.3
26
+ - ruby-3.4
27
+ - ruby-head
25
28
  steps:
26
- - uses: actions/checkout@v2
29
+ - uses: actions/checkout@v4
27
30
  - uses: ruby/setup-ruby@v1
28
31
  with:
29
32
  ruby-version: ${{ matrix.ruby }}
@@ -34,9 +37,9 @@ jobs:
34
37
  rubocop:
35
38
  runs-on: ubuntu-latest
36
39
  steps:
37
- - uses: actions/checkout@v2
40
+ - uses: actions/checkout@v4
38
41
  - uses: ruby/setup-ruby@v1
39
42
  with:
40
- ruby-version: 2.5
43
+ ruby-version: 2.7
41
44
  bundler-cache: true
42
45
  - run: bundle exec rubocop --format progress --color
data/.rubocop.yml CHANGED
@@ -1,6 +1,19 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rake
4
+ - rubocop-rspec
5
+
1
6
  AllCops:
2
- TargetRubyVersion: 2.5
7
+ TargetRubyVersion: 2.7
3
8
  DisplayCopNames: true
9
+ NewCops: enable
10
+
11
+ #
12
+ # Gemspec
13
+ #
14
+
15
+ Gemspec/RequireMFA:
16
+ Enabled: false
4
17
 
5
18
  #
6
19
  # Metrics
@@ -36,3 +49,13 @@ Style/FrozenStringLiteralComment:
36
49
 
37
50
  Style/StringLiterals:
38
51
  EnforcedStyle: double_quotes
52
+
53
+ #
54
+ # RSpec
55
+ #
56
+
57
+ RSpec/MultipleExpectations:
58
+ Max: 3
59
+
60
+ RSpec/ExampleLength:
61
+ Max: 6
data/CHANGELOG.md CHANGED
@@ -1,8 +1,19 @@
1
- ## [1.0.10] (2021-10-06)
1
+ ## [1.0.11] (2026-01-22)
2
+
3
+ - [#38](https://github.com/RubyCrypto/x25519/pull/38)
4
+ Drop support for Ruby 2.5/2.6
5
+ - [#36](https://github.com/RubyCrypto/x25519/pull/36)
6
+ Add automatic fallback for non-x86_64 targets.
7
+
8
+ [1.0.11]: https://github.com/RubyCrypto/x25519/compare/v1.0.10...v1.0.11
9
+
10
+ ## [1.0.10] (2022-10-06)
2
11
 
3
12
  [1.0.10]: https://github.com/RubyCrypto/x25519/compare/v1.0.9...v1.0.10
4
13
 
5
- - [#29](https://github.com/RubyCrypto/x25519/pull/29)
14
+ - [#32](https://github.com/RubyCrypto/x25519/pull/32)
15
+ Avoid building precomputed on `aarch64-linux`
16
+ - [#29](https://github.com/RubyCrypto/x25519/pull/29), [#31](https://github.com/RubyCrypto/x25519/pull/31)
6
17
  Allow usage on Apple silicon
7
18
 
8
19
  ## [1.0.9] (2021-08-04)
data/Gemfile CHANGED
@@ -8,5 +8,8 @@ group :development, :test do
8
8
  gem "rake", require: false
9
9
  gem "rake-compiler", "~> 1.0", require: false
10
10
  gem "rspec", "~> 3.10", require: false
11
- gem "rubocop", "1.18", require: false
11
+ gem "rubocop", "1.68", require: false
12
+ gem "rubocop-performance", "1.23.0", require: false
13
+ gem "rubocop-rake", "0.6.0", require: false
14
+ gem "rubocop-rspec", "3.2.0", require: false
12
15
  end
data/README.md CHANGED
@@ -49,7 +49,7 @@ useful for encryption without a higher-level encryption protocol built on top of
49
49
 
50
50
  **x25519.rb** is supported on and tested against the following platforms:
51
51
 
52
- - MRI 2.5, 2.6, 2.7, 3.0
52
+ - MRI 2.7, 3.0, 3.1, 3.2, 3.3, 3.4
53
53
 
54
54
  ## Installation
55
55
 
@@ -271,8 +271,8 @@ The optimized [rfc7748_precomputed] implementation was designed by:
271
271
 
272
272
  ## License
273
273
 
274
- Copyright (c) 2017-2018 Armando Faz
275
- Copyright (c) 2017-2021 Tony Arcieri
274
+ * Copyright (c) 2017-2018 Armando Faz
275
+ * Copyright (c) 2017-2026 Tony Arcieri
276
276
 
277
277
  This gem is available as open source under the terms of the
278
278
  BSD-3 Clause License ([LICENSE](./LICENSE))
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ CLEAN.include("**/*.o", "**/*.so", "**/*.bundle", "pkg", "tmp")
7
7
 
8
8
  require "rake/extensiontask"
9
9
  %w[precomputed ref10].each do |provider|
10
- next if provider == "precomputed" && RUBY_PLATFORM =~ /arm64-darwin/
10
+ next if provider == "precomputed" && RUBY_PLATFORM !~ /x86_64|x64/
11
11
 
12
12
  Rake::ExtensionTask.new("x25519_#{provider}") do |ext|
13
13
  ext.ext_dir = "ext/x25519_#{provider}"
@@ -4,12 +4,12 @@
4
4
 
5
5
  require "mkmf"
6
6
 
7
- if RUBY_PLATFORM =~ /arm64-darwin|aarch64-linux/
8
- File.write("Makefile", "install clean: ;")
9
- else
7
+ if RUBY_PLATFORM.match?(/x86_64|x64/)
10
8
  $CFLAGS << " -Wall -O3 -pedantic -std=c99 -mbmi -mbmi2 -march=haswell"
11
9
 
12
10
  create_makefile "x25519_precomputed"
11
+ else
12
+ File.write("Makefile", "install clean: ;")
13
13
  end
14
14
 
15
15
  # rubocop:enable Style/GlobalVars
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module X25519
4
- VERSION = "1.0.10"
4
+ VERSION = "1.0.11"
5
5
  end
data/x25519.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require File.expand_path("lib/x25519/version", __dir__)
3
+ require_relative "lib/x25519/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "x25519"
@@ -16,12 +16,8 @@ Gem::Specification.new do |spec|
16
16
  spec.homepage = "https://github.com/RubyCrypto/x25519"
17
17
  spec.license = "BSD-3-Clause" # https://spdx.org/licenses/BSD-3-Clause.html
18
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
- spec.bindir = "exe"
20
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
- spec.require_paths = ["lib"]
22
19
  spec.platform = Gem::Platform::RUBY
23
20
  spec.extensions = ["ext/x25519_precomputed/extconf.rb", "ext/x25519_ref10/extconf.rb"]
24
21
 
25
- spec.required_ruby_version = ">= 2.5"
26
- spec.add_development_dependency "bundler", "~> 2.1"
22
+ spec.required_ruby_version = ">= 2.7"
27
23
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: x25519
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Arcieri
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-06 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.1'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.1'
11
+ date: 2026-01-22 00:00:00.000000000 Z
12
+ dependencies: []
27
13
  description: An efficient public key cryptography library for Ruby providing key exchange/agreement
28
14
  via the X25519 (a.k.a. Curve25519) Elliptic Curve Diffie-Hellman function as described
29
15
  in RFC 7748.
@@ -82,14 +68,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
68
  requirements:
83
69
  - - ">="
84
70
  - !ruby/object:Gem::Version
85
- version: '2.5'
71
+ version: '2.7'
86
72
  required_rubygems_version: !ruby/object:Gem::Requirement
87
73
  requirements:
88
74
  - - ">="
89
75
  - !ruby/object:Gem::Version
90
76
  version: '0'
91
77
  requirements: []
92
- rubygems_version: 3.0.3
78
+ rubygems_version: 3.3.7
93
79
  signing_key:
94
80
  specification_version: 4
95
81
  summary: Public key cryptography library providing the X25519 Elliptic Curve Diffie-Hellman