function readPkcs1ECDSAPrivate(der) {
	var version = readMPInt(der, 'version');
	assert.strictEqual(version.readUInt8(0), 1);

	// private key
	var d = der.readString(asn1.Ber.OctetString, true);

	der.readSequence(0xa0);
	var curve = readECDSACurve(der);
	assert.string(curve, 'a known elliptic curve');

	der.readSequence(0xa1);
	var Q = der.readString(asn1.Ber.BitString, true);
	Q = utils.ecNormalize(Q);

	var key = {
		type: 'ecdsa',
		parts: [
			{ name: 'curve', data: Buffer.from(curve) },
			{ name: 'Q', data: Q },
			{ name: 'd', data: d }
		]
	};

	return (new PrivateKey(key));
}
Add command `name`.

The `.action()` callback is invoked when the
command `name` is specified via __ARGV__,
and the remaining arguments are applied to the
function for access.

When the `name` is "*" an un-matched command
will be passed as the first arg, followed by
the rest of __ARGV__ remaining.

Examples:

     program
       .version('0.0.1')
       .option('-C, --chdir <path>', 'change the working directory')
       .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
       .option('-T, --no-tests', 'ignore test hook')

     program
       .command('setup')
       .description('run remote setup commands')
       .action(function() {
         console.log('setup');
       });

     program
       .command('exec <cmd>')
       .description('run the given remote command')
       .action(function(cmd) {
         console.log('exec "%s"', cmd);
       });

     program
       .command('teardown <dir> [otherDirs...]')
       .description('run teardown commands')
       .action(function(dir, otherDirs) {
         console.log('dir "%s"', dir);
         if (otherDirs) {
           otherDirs.forEach(function (oDir) {
             console.log('dir "%s"', oDir);
           });
         }
       });

     program
       .command('*')
       .description('deploy the given env')
       .action(function(env) {
         console.log('deploying "%s"', env);
       });

     program.parse(process.argv);

@param {String} name
@param {String} [desc] for git-style sub-commands
@return {Command} the new command
@api public