1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /**
- * @module util-identities
- */
- 'use strict'
- const util = require('./util')
- const debuglog = util.debuglog
- const flatList = util.flatList
- const execFileAsync = util.execFileAsync
- /**
- * @constructor
- * @param {string} name - Name of the signing identity.
- * @param {String} hash - SHA-1 hash of the identity.
- */
- var Identity = module.exports.Identity = function (name, hash) {
- this.name = name
- this.hash = hash
- }
- /**
- * This function returns a promise checking the indentity proposed and updates the identity option to a exact finding from results.
- * @function
- * @param {Object} opts - Options.
- * @param {string} identity - The proposed identity.
- * @returns {Promise} Promise.
- */
- module.exports.findIdentitiesAsync = function (opts, identity) {
- // Only to look for valid identities, excluding those flagged with
- // CSSMERR_TP_CERT_EXPIRED or CSSMERR_TP_NOT_TRUSTED. Fixes #9
- var args = [
- 'find-identity',
- '-v'
- ]
- if (opts.keychain) {
- args.push(opts.keychain)
- }
- return execFileAsync('security', args)
- .then(function (result) {
- return result.split('\n').map(function (line) {
- if (line.indexOf(identity) >= 0) {
- var identityFound = line.substring(line.indexOf('"') + 1, line.lastIndexOf('"'))
- var identityHashFound = line.substring(line.indexOf(')') + 2, line.indexOf('"') - 1)
- debuglog('Identity:', '\n',
- '> Name:', identityFound, '\n',
- '> Hash:', identityHashFound)
- return new Identity(identityFound, identityHashFound)
- }
- })
- })
- .then(flatList)
- }
|