Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run Ubuntu 22.04 in test matrix #234

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
name: Verify

# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
actions: none
checks: none
contents: none
deployments: none
id-token: none
issues: none
discussions: none
packages: none
pages: none
pull-requests: none
repository-projects: none
security-events: none
statuses: none

on:
push:
branches:
Expand All @@ -10,7 +26,7 @@ on:

jobs:
test:
runs-on: ubuntu-18.04
runs-on: ${{ matrix.os }}
timeout-minutes: 40

strategy:
Expand All @@ -19,15 +35,22 @@ jobs:
ruby:
- 2.6
- 2.7
- 3.0.3
- 3.1.1
- 3.0
- 3.1
os:
- ubuntu-18.04
- ubuntu-22.04
exclude:
- { os: ubuntu-22.04, ruby: 2.6 }
- { os: ubuntu-22.04, ruby: 2.7 }
- { os: ubuntu-22.04, ruby: 3.0 }
test_cmd:
- bundle exec rspec

env:
RAILS_ENV: test

name: Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }}
name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }}
steps:
- name: Checkout code
uses: actions/checkout@v2
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# RubySMB

[![Code Climate](https://codeclimate.com/github/rapid7/ruby_smb.png)](https://codeclimate.com/github/rapid7/ruby_smb)
[![Coverage Status](https://coveralls.io/repos/github/rapid7/ruby_smb/badge.svg?branch=master)](https://coveralls.io/github/rapid7/ruby_smb?branch=master)

This is a native Ruby implementation of the SMB Protocol Family. It currently supports:

Expand Down
2 changes: 2 additions & 0 deletions lib/ruby_smb/signing.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ def smb2_sign(packet)
def self.smb2_sign(packet, session_key)
packet.smb2_header.flags.signed = 1
packet.smb2_header.signature = "\x00" * 16
# OpenSSL 3 raises exceptions if the session key is an empty string
session_key = session_key == '' ? ("\x00" * 16).b : session_key
hmac = OpenSSL::HMAC.digest(OpenSSL::Digest.new('SHA256'), session_key, packet.to_binary_s)
packet.smb2_header.signature = hmac[0, 16]

Expand Down
14 changes: 6 additions & 8 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
# Enable legacy providers
ENV['OPENSSL_CONF'] = File.expand_path(
File.join(File.dirname(__FILE__), 'support', 'openssl.conf')
)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenSSL 3 no longer loads old cyphers by default. This allows the tests to pass. Metasploit-framework will have this file loaded at runtime.

Unfortunately it means direct users of RubySMB will need a similar configuration change. Or we will need to wait for a solution similar to WinRb/rubyntlm#53 to land


require 'simplecov'

SimpleCov.start unless SimpleCov.running
SimpleCov.add_filter '/spec/'

require 'coveralls'
require 'ruby_smb'

if ENV['CI'] == 'true'
# don't generate local report as it is inaccessible on travis-ci, which is
# why coveralls is being used.
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
else
SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
end
SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter

Dir['./spec/support/**/*.rb'].sort.each { |f| require f }

Expand Down
14 changes: 14 additions & 0 deletions spec/support/openssl.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
openssl_conf = openssl_init

[openssl_init]
providers = provider_sect

[provider_sect]
default = default_sect
legacy = legacy_sect

[default_sect]
activate = 1

[legacy_sect]
activate = 1