You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					85 lines
				
				2.7 KiB
			
		
		
			
		
	
	
					85 lines
				
				2.7 KiB
			| 
											3 years ago
										 | // 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 | ||
|  | }; |