Sha256: d37c0a49b1e9406d1f422831c0fe9447df561ec4b1d7e760231ae78255cf40f2

Contents?: true

Size: 993 Bytes

Versions: 7

Compression:

Stored size: 993 Bytes

Contents

#!/usr/bin/env ruby

def logger
  @logger ||= Logger.new(STDOUT, level: :debug)
end

def verify(rules)
  verifier = Sqreen::SqreenSignedVerifier.new

  invalid_rules = rules.reject do |rule|
    valid = verifier.verify(rule)

    if valid
      logger.debug { "rule: #{rule['name']} signed: true result: ok" }
    else
      logger.error { "rule: #{rule['name']} singed: true result: fail" }
    end

    valid
  end

  if invalid_rules.any?
    logger.error { "weave: instrument status: abort reason: signature result: fail" }
    raise Sqreen::Exception, "Signature error: rules: #{invalid_rules.map { |r| r['name'] }.inspect}"
  else
    logger.info { "weave: instrument rules: signed result: ok" }
  end
end

def check_signature(file)
  require 'json'
  require 'logger'
  require 'sqreen/sqreen_signed_verifier'

  content = File.open(file, 'rb', &:read)
  json = JSON.parse(content)

  p verify(json)
end

case ARGV[0]
when 'check-signature' then check_signature(ARGV[1]) || exit(1)
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sqreen-1.25.1 bin/sqreen
sqreen-1.25.0 bin/sqreen
sqreen-1.24.3 bin/sqreen
sqreen-1.24.2 bin/sqreen
sqreen-1.24.1 bin/sqreen
sqreen-1.24.0 bin/sqreen
sqreen-1.23.2 bin/sqreen