diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c2a4583..b9d7deb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,10 +13,14 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-2019] - ruby: ['3.0', '3.1', '3.2', '3.3', 'head'] + ruby: ['3.0', '3.1', '3.2', '3.3', '3.4', 'head'] include: - os: ubuntu-latest ruby: 'truffleruby' + - os: ubuntu-latest + ruby: '3.4' + ruby-opt: '--enable-frozen-string-literal --debug-frozen-string-literal' + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -24,4 +28,4 @@ jobs: with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - - run: bundle exec rake + - run: bundle exec rake RUBYOPT="${{ matrix.ruby-opt }}" diff --git a/lib/net/ntlm/channel_binding.rb b/lib/net/ntlm/channel_binding.rb index fda9c63..4b89120 100644 --- a/lib/net/ntlm/channel_binding.rb +++ b/lib/net/ntlm/channel_binding.rb @@ -17,7 +17,7 @@ def self.create(outer_channel) # the outer TLS channel def initialize(outer_channel) @channel = outer_channel - @unique_prefix = 'tls-server-end-point' + @unique_prefix = 'tls-server-end-point'.dup @initiator_addtype = 0 @initiator_address_length = 0 @acceptor_addrtype = 0 diff --git a/lib/net/ntlm/md4.rb b/lib/net/ntlm/md4.rb index 54381cb..d987e89 100644 --- a/lib/net/ntlm/md4.rb +++ b/lib/net/ntlm/md4.rb @@ -35,7 +35,7 @@ def self.digest(string) end io = StringIO.new(string) - block = "" + block = "".dup while io.read(64, block) x = block.unpack("V16") diff --git a/lib/net/ntlm/target_info.rb b/lib/net/ntlm/target_info.rb index 7cc50ac..3e0a8bd 100644 --- a/lib/net/ntlm/target_info.rb +++ b/lib/net/ntlm/target_info.rb @@ -26,7 +26,7 @@ def initialize(av_pair_sequence) attr_reader :av_pairs def to_s - result = '' + result = ''.b av_pairs.each do |k,v| result << k result << [v.length].pack('S') diff --git a/spec/lib/net/ntlm/channel_binding_spec.rb b/spec/lib/net/ntlm/channel_binding_spec.rb index c1719b7..2c2094b 100644 --- a/spec/lib/net/ntlm/channel_binding_spec.rb +++ b/spec/lib/net/ntlm/channel_binding_spec.rb @@ -4,7 +4,7 @@ let(:certificates_path) { 'spec/support/certificates' } let(:sha_256_path) { File.join(certificates_path, 'sha_256_hash.pem') } let(:sha_256_cert) { OpenSSL::X509::Certificate.new(File.read(sha_256_path)) } - let(:cert_hash) { "\x04\x0E\x56\x28\xEC\x4A\x98\x29\x91\x70\x73\x62\x03\x7B\xB2\x3C".force_encoding(Encoding::ASCII_8BIT) } + let(:cert_hash) { "\x04\x0E\x56\x28\xEC\x4A\x98\x29\x91\x70\x73\x62\x03\x7B\xB2\x3C".b } subject { Net::NTLM::ChannelBinding.create(sha_256_cert) }