{"_id":"signcode","_rev":"4244338","name":"signcode","description":"Sign Windows executables from a Mac","dist-tags":{"latest":"1.0.0"},"maintainers":[{"name":"kevinsawicki","email":""}],"time":{"modified":"2026-03-29T21:26:08.000Z","created":"2016-04-15T21:27:35.958Z","1.0.0":"2017-04-11T16:38:34.377Z","0.5.0":"2016-04-27T18:31:56.150Z","0.4.0":"2016-04-15T23:55:51.590Z","0.2.0":"2016-04-15T23:26:38.022Z","0.1.0":"2016-04-15T21:27:35.958Z"},"users":{},"author":{"name":"Kevin Sawicki"},"repository":{"type":"git","url":"git+https://github.com/kevinsawicki/signcode.git"},"versions":{"1.0.0":{"name":"signcode","version":"1.0.0","description":"Sign Windows executables from a Mac","repository":{"type":"git","url":"git+https://github.com/kevinsawicki/signcode.git"},"main":"index.js","scripts":{"test":"mocha && standard"},"bin":{"signcode":"./cli.js"},"author":{"name":"Kevin Sawicki"},"license":"MIT","devDependencies":{"mocha":"^2.4.5","standard":"^6.0.8","temp":"^0.8.3"},"dependencies":{"prompt":"^1.0.0","yargs":"^7.0.2"},"gitHead":"313cb8afb4eb4197fa98a8d65cca047cca960c1c","bugs":{"url":"https://github.com/kevinsawicki/signcode/issues"},"homepage":"https://github.com/kevinsawicki/signcode#readme","_id":"signcode@1.0.0","_shasum":"c469ec0cbaa02f962c62f1936426e692224dad27","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"dist":{"shasum":"c469ec0cbaa02f962c62f1936426e692224dad27","size":28599,"noattachment":false,"key":"/signcode/-/signcode-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/signcode/download/signcode-1.0.0.tgz"},"maintainers":[{"name":"kevinsawicki","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/signcode-1.0.0.tgz_1491928712070_0.7719005532562733"},"directories":{},"publish_time":1491928714377,"_hasShrinkwrap":false,"_cnpm_publish_time":1491928714377,"_cnpmcore_publish_time":"2021-12-17T01:15:57.852Z"},"0.5.0":{"name":"signcode","version":"0.5.0","description":"Sign Windows executables from a Mac","repository":{"type":"git","url":"git+https://github.com/kevinsawicki/signcode.git"},"main":"index.js","scripts":{"test":"mocha && standard"},"bin":{"signcode":"./cli.js"},"author":{"name":"Kevin Sawicki"},"license":"MIT","devDependencies":{"mocha":"^2.4.5","standard":"^6.0.8","temp":"^0.8.3"},"dependencies":{"prompt":"^1.0.0","yargs":"^4.6.0"},"gitHead":"8acba2fa08d7eb2a2a841ca54fbb6550f6d80b95","bugs":{"url":"https://github.com/kevinsawicki/signcode/issues"},"homepage":"https://github.com/kevinsawicki/signcode#readme","_id":"signcode@0.5.0","_shasum":"fdbbfe9fcf764e16354c28b2c990307ec82485e0","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":""}],"dist":{"shasum":"fdbbfe9fcf764e16354c28b2c990307ec82485e0","size":28311,"noattachment":false,"key":"/signcode/-/signcode-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/signcode/download/signcode-0.5.0.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/signcode-0.5.0.tgz_1461781913669_0.71226188656874"},"directories":{},"publish_time":1461781916150,"_hasShrinkwrap":false,"_cnpm_publish_time":1461781916150,"_cnpmcore_publish_time":"2021-12-17T01:15:58.183Z"},"0.4.0":{"name":"signcode","version":"0.4.0","description":"Sign Windows executables from a Mac","repository":{"type":"git","url":"git+https://github.com/kevinsawicki/signcode.git"},"main":"index.js","scripts":{"test":"mocha && standard"},"bin":{"signcode":"./cli.js"},"author":{"name":"Kevin Sawicki"},"license":"MIT","devDependencies":{"mocha":"^2.4.5","standard":"^6.0.8","temp":"^0.8.3"},"dependencies":{"prompt":"^1.0.0","yargs":"^4.6.0"},"gitHead":"0c5af357ada73c7faeea7e9658296fda41630a07","bugs":{"url":"https://github.com/kevinsawicki/signcode/issues"},"homepage":"https://github.com/kevinsawicki/signcode#readme","_id":"signcode@0.4.0","_shasum":"563fdcf833a4ee3209967862b7edc6beaa5f8fc7","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":""}],"dist":{"shasum":"563fdcf833a4ee3209967862b7edc6beaa5f8fc7","size":27968,"noattachment":false,"key":"/signcode/-/signcode-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/signcode/download/signcode-0.4.0.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/signcode-0.4.0.tgz_1460764549430_0.10910117672756314"},"directories":{},"publish_time":1460764551590,"_hasShrinkwrap":false,"_cnpm_publish_time":1460764551590,"_cnpmcore_publish_time":"2021-12-17T01:15:58.474Z"},"0.2.0":{"name":"signcode","version":"0.2.0","description":"Sign Windows executables from a Mac","repository":{"type":"git","url":"git+https://github.com/kevinsawicki/signcode.git"},"main":"index.js","scripts":{"test":"mocha && standard"},"bin":{"signcode":"./cli.js"},"author":{"name":"Kevin Sawicki"},"license":"MIT","devDependencies":{"mocha":"^2.4.5","standard":"^6.0.8","temp":"^0.8.3"},"dependencies":{"prompt":"^1.0.0","yargs":"^4.6.0"},"gitHead":"359a7d94994a138812152a169f3a3a31d5b5d782","bugs":{"url":"https://github.com/kevinsawicki/signcode/issues"},"homepage":"https://github.com/kevinsawicki/signcode#readme","_id":"signcode@0.2.0","_shasum":"ef88fd79754b077f31235ff8f6ca4a768bdab37a","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":""}],"dist":{"shasum":"ef88fd79754b077f31235ff8f6ca4a768bdab37a","size":27913,"noattachment":false,"key":"/signcode/-/signcode-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/signcode/download/signcode-0.2.0.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/signcode-0.2.0.tgz_1460762795602_0.11430283566005528"},"directories":{},"publish_time":1460762798022,"_hasShrinkwrap":false,"_cnpm_publish_time":1460762798022,"_cnpmcore_publish_time":"2021-12-17T01:15:58.720Z"},"0.1.0":{"name":"signcode","version":"0.1.0","description":"Sign Windows executables from a Mac","repository":{"type":"git","url":"git+https://github.com/kevinsawicki/signcode.git"},"main":"index.js","scripts":{"test":"mocha && standard"},"author":{"name":"Kevin Sawicki"},"license":"MIT","devDependencies":{"mocha":"^2.4.5","standard":"^6.0.8","temp":"^0.8.3"},"gitHead":"c4c4c505f3a63b173ace42fbf5b7774f40219c37","bugs":{"url":"https://github.com/kevinsawicki/signcode/issues"},"homepage":"https://github.com/kevinsawicki/signcode#readme","_id":"signcode@0.1.0","_shasum":"a51e41784d4ff8fb213d1e5b7e1e67c41cc17b2f","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"kevinsawicki","email":"kevinsawicki@gmail.com"},"maintainers":[{"name":"kevinsawicki","email":""}],"dist":{"shasum":"a51e41784d4ff8fb213d1e5b7e1e67c41cc17b2f","size":27416,"noattachment":false,"key":"/signcode/-/signcode-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/signcode/download/signcode-0.1.0.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/signcode-0.1.0.tgz_1460755653766_0.8721624347381294"},"directories":{},"publish_time":1460755655958,"_hasShrinkwrap":false,"_cnpm_publish_time":1460755655958,"_cnpmcore_publish_time":"2021-12-17T01:15:59.080Z"}},"readme":"# signcode\n\n[![Travis Build Status](https://travis-ci.org/kevinsawicki/signcode.svg?branch=master)](https://travis-ci.org/kevinsawicki/signcode)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](http://standardjs.com/)\n[![npm](https://img.shields.io/npm/v/signcode.svg)](https://www.npmjs.com/packages/signcode)\n[![downloads](https://img.shields.io/npm/dm/signcode.svg)](https://www.npmjs.com/packages/signcode)\n\nSign Windows executables and installers from a Mac.\n\nWorks with `.pem`, `.p12`, and `.pfx` code signing files.\n\nSigns with `sha1` and `sha256` signatures by default.\n\n## Installing\n\n```sh\nnpm install --save-dev signcode\n```\n\n## Using\n\n```js\nvar signcode = require('signcode')\n\nvar options = {\n  cert: '/Users/kevin/certs/cert.pem',\n  key: '/Users/kevin/certs/key.pem',\n  overwrite: true,\n  path: '/Users/kevin/apps/myapp.exe'\n}\n\nsigncode.sign(options, function (error) {\n  if (error) {\n    console.error('Signing failed', error.message)\n  } else {\n    console.log(options.path + ' is now signed')\n  }\n})\n\nsigncode.verify({ path: '/Users/kevin/apps/myapp.exe' }, function (error) {\n  if (error) {\n    console.error('Not signed', error.message)\n  } else {\n    console.log(options.path + ' is signed')\n  }\n})\n```\n\n### Signing Options\n\n| Name           | Type      | Required | Description                 |\n| :------------- | :-------- | :------- | :-------------------------- |\n| `cert`         | `String`  | Yes      | Path to a certificate file. |\n| `path`         | `String`  | Yes      | File path to executable to sign. |\n| `hash`         | `Array`   | No       | Signature types to sign the executable with. Defaults to `['sha1', 'sha256']`. |\n| `key`          | `String`  | No       | Path to a `.pem` key file. Only required if `cert` is a `.pem` file. |\n| `name`         | `String`  | No       | Product name to include in the signature. |\n| `overwrite`    | `Boolean` | No       | `true` to sign the executable in place, `false` to write the signed file at the same path but with `-signed` at the end of it. Defaults to `false`. |\n| `password`     | `String`  | No       | Password to the certificate or key. |\n| `passwordPath` | `String`  | No       | Path to a file containing the password for the certificate or key. |\n| `site`         | `String`  | No       | Website URL to include in the signature. |\n\n### Verification Options\n\n| Name           | Type      | Required | Description                 |\n| :------------- | :-------- | :------- | :-------------------------- |\n| `path`         | `String`  | Yes      | File path to executable to verify. |\n| `hash`         | `String`  | No       | Certificate fingerprint to expect on executable. |\n\n### Command Line Example\n\n```sh\nsigncode sign /Users/kevin/apps/myapp.exe \\\n  --cert /Users/kevin/certs/cert.p12 \\\n  --prompt \\\n  --name 'My App' \\\n  --url 'http://birthday.pizza'\nsigncode verify /Users/kevin/apps/myapp.exe\n```\n\nRun `signcode -h` to see all the supported options.\n\n## Cert helpers commands\n\nThese commands are helpful when working with certificates.\n\n### Create cert and key with no password\n\n```sh\nopenssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -nodes\n```\n\n### Create cert and key with a password\n\n```sh\nopenssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem\n```\n\n### Create a p12 with no password\n\n```sh\nopenssl pkcs12 -export -out ./test/fixtures/cert.p12 -inkey ./test/fixtures/key.pem -in ./test/fixtures/cert.pem\n```\n\n### Show fingerprint of a cert\n\n```sh\nopenssl x509 -noout -in ./test/fixtures/cert.pem -fingerprint -sha1\n```\n\n```sh\nopenssl x509 -noout -in ./test/fixtures/cert.pem -fingerprint -sha256\n```\n","_attachments":{},"homepage":"https://github.com/kevinsawicki/signcode#readme","bugs":{"url":"https://github.com/kevinsawicki/signcode/issues"},"license":"MIT"}