| // Copyright 2015 Joyent, Inc. |
| |
| var assert = require('assert-plus'); |
| var util = require('util'); |
| |
| function FingerprintFormatError(fp, format) { |
| if (Error.captureStackTrace) |
| Error.captureStackTrace(this, FingerprintFormatError); |
| this.name = 'FingerprintFormatError'; |
| this.fingerprint = fp; |
| this.format = format; |
| this.message = 'Fingerprint format is not supported, or is invalid: '; |
| if (fp !== undefined) |
| this.message += ' fingerprint = ' + fp; |
| if (format !== undefined) |
| this.message += ' format = ' + format; |
| } |
| util.inherits(FingerprintFormatError, Error); |
| |
| function InvalidAlgorithmError(alg) { |
| if (Error.captureStackTrace) |
| Error.captureStackTrace(this, InvalidAlgorithmError); |
| this.name = 'InvalidAlgorithmError'; |
| this.algorithm = alg; |
| this.message = 'Algorithm "' + alg + '" is not supported'; |
| } |
| util.inherits(InvalidAlgorithmError, Error); |
| |
| function KeyParseError(name, format, innerErr) { |
| if (Error.captureStackTrace) |
| Error.captureStackTrace(this, KeyParseError); |
| this.name = 'KeyParseError'; |
| this.format = format; |
| this.keyName = name; |
| this.innerErr = innerErr; |
| this.message = 'Failed to parse ' + name + ' as a valid ' + format + |
| ' format key: ' + innerErr.message; |
| } |
| util.inherits(KeyParseError, Error); |
| |
| function SignatureParseError(type, format, innerErr) { |
| if (Error.captureStackTrace) |
| Error.captureStackTrace(this, SignatureParseError); |
| this.name = 'SignatureParseError'; |
| this.type = type; |
| this.format = format; |
| this.innerErr = innerErr; |
| this.message = 'Failed to parse the given data as a ' + type + |
| ' signature in ' + format + ' format: ' + innerErr.message; |
| } |
| util.inherits(SignatureParseError, Error); |
| |
| function CertificateParseError(name, format, innerErr) { |
| if (Error.captureStackTrace) |
| Error.captureStackTrace(this, CertificateParseError); |
| this.name = 'CertificateParseError'; |
| this.format = format; |
| this.certName = name; |
| this.innerErr = innerErr; |
| this.message = 'Failed to parse ' + name + ' as a valid ' + format + |
| ' format certificate: ' + innerErr.message; |
| } |
| util.inherits(CertificateParseError, Error); |
| |
| function KeyEncryptedError(name, format) { |
| if (Error.captureStackTrace) |
| Error.captureStackTrace(this, KeyEncryptedError); |
| this.name = 'KeyEncryptedError'; |
| this.format = format; |
| this.keyName = name; |
| this.message = 'The ' + format + ' format key ' + name + ' is ' + |
| 'encrypted (password-protected), and no passphrase was ' + |
| 'provided in `options`'; |
| } |
| util.inherits(KeyEncryptedError, Error); |
| |
| module.exports = { |
| FingerprintFormatError: FingerprintFormatError, |
| InvalidAlgorithmError: InvalidAlgorithmError, |
| KeyParseError: KeyParseError, |
| SignatureParseError: SignatureParseError, |
| KeyEncryptedError: KeyEncryptedError, |
| CertificateParseError: CertificateParseError |
| }; |