class Netfira::InstallerGenerator::Binary::Signcode

Attributes

description[RW]
key_path[RW]
source_path[RW]
spc_path[RW]
target_path[RW]
url[RW]

Public Class Methods

bin_files() click to toggle source
# File lib/netfira/installer_generator/binary/signcode.rb, line 4
def self.bin_files; %w[osslsigncode signcode] end

Public Instance Methods

command() click to toggle source
# File lib/netfira/installer_generator/binary/signcode.rb, line 8
def command
  send :"#{self.class.bin_file}_cmd"
end

Private Instance Methods

osslsigncode_cmd() click to toggle source

See development.adaptris.net/users/lchan/blog/2013/06/07/signing-windows-installers-on-linux/

# File lib/netfira/installer_generator/binary/signcode.rb, line 16
def osslsigncode_cmd
  parts = [
      'osslsigncode',
      '-spc', esc(spc_path),
      '-key', esc(key_path),
      '-n', esc(description || 'Netfira'),
      '-i', esc(url || 'http://netfira.com'),
      '-t http://timestamp.verisign.com/scripts/timstamp.dll',
      '-in', esc(source_path),
      '-out', esc(target_path)
  ]
  parts.join ' '
end
signcode_cmd() click to toggle source

From Amel’s rendition: $signCommand = “signcode -spc {$certFileBase}authenticode.spc -v {$certFileBase}authenticode.pvk -a sha1 -$ commercial -n Netfira ”; $signCommand .= “-i netfira.com -t timestamp.verisign.com/scripts/timstamp.dll -tr 10 ”.$fileName;

See manpages.ubuntu.com/manpages/precise/man1/signcode.1.html

# File lib/netfira/installer_generator/binary/signcode.rb, line 36
def signcode_cmd
  parts = [
      'cp', esc(source_path), esc(target_path), '&&',
      'signcode',
      '-spc', esc(spc_path),
      '-v', esc(key_path),
      '-a sha1',                # Hash algorithm
      '-$ commercial',          # Publisher information
      '-n', esc(description || 'Netfira'),
      '-i', esc(url || 'http://netfira.com'),
      '-t http://timestamp.verisign.com/scripts/timstamp.dll',
      '-tr 3 -tw 5',            # Try timestamping 3 times, 5 seconds apart
      esc(target_path)
  ]
  parts.join ' '
end