jose/lib/errors.js
2019-02-10 21:39:59 +01:00

43 lines
1.7 KiB
JavaScript

const CODES = {
TODO: 'ERR_TODO',
JOSEAlgNotSupported: 'ERR_JOSE_ALG_NOT_SUPPORTED',
JWEDecryptionFailed: 'ERR_JWE_DECRYPTION_FAILED',
JWEInvalid: 'ERR_JWE_INVALID',
JWEInvalidHeader: 'ERR_JWE_INVALID_HEADER',
JWENoRecipients: 'ERR_JWE_NO_RECIPIENTS',
JWKImportFailed: 'ERR_JWK_IMPORT_FAILED',
JWKKeySupport: 'ERR_JWK_KEY_SUPPORT',
JWSInvalidHeader: 'ERR_JWS_INVALID_HEADER',
JWSNoRecipients: 'ERR_JWS_NO_RECIPIENTS',
JWSVerificationFailed: 'ERR_JWS_VERIFICATION_FAILED'
}
const DEFAULT_MESSAGES = {
JWEDecryptionFailed: 'decryption operation failed',
JWSVerificationFailed: 'signature verification failed'
}
class JoseError extends Error {
constructor (message) {
super(message)
if (message === undefined) {
message = DEFAULT_MESSAGES[this.constructor.name]
}
this.name = this.constructor.name
this.code = CODES[this.constructor.name]
Error.captureStackTrace(this, this.constructor)
}
}
module.exports.JOSEAlgNotSupported = class JOSEAlgNotSupported extends JoseError {}
module.exports.JWEDecryptionFailed = class JWEDecryptionFailed extends JoseError {}
module.exports.JWEInvalid = class JWEInvalid extends JoseError {}
module.exports.JWEInvalidHeader = class JWEInvalidHeader extends JoseError {}
module.exports.JWENoRecipients = class JWENoRecipients extends JoseError {}
module.exports.JWKImportFailed = class JWKImportFailed extends JoseError {}
module.exports.JWKKeySupport = class JWKKeySupport extends JoseError {}
module.exports.JWSInvalidHeader = class JWSInvalidHeader extends JoseError {}
module.exports.JWSNoRecipients = class JWSNoRecipients extends JoseError {}
module.exports.JWSVerificationFailed = class JWSVerificationFailed extends JoseError {}
module.exports.TODO = class TODO extends JoseError {}