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.
19 lines
745 B
19 lines
745 B
/** |
|
* Sanitize error messages to prevent private key leaks |
|
* @param {string} message - Error message to sanitize |
|
* @returns {string} - Sanitized error message |
|
*/ |
|
export function sanitizeErrorMessage(message) { |
|
if (!message || typeof message !== 'string') { |
|
return String(message); |
|
} |
|
|
|
return message |
|
.replace(/nsec[0-9a-z]+/gi, '[nsec]') |
|
.replace(/[0-9a-f]{64}/gi, '[hex-key]') |
|
.replace(/private.*key[=:]\s*[^\s]+/gi, '[private-key]') |
|
.replace(/secret.*key[=:]\s*[^\s]+/gi, '[secret-key]') |
|
.replace(/NOSTRGIT_SECRET_KEY[=:]\s*[^\s]+/gi, 'NOSTRGIT_SECRET_KEY=[redacted]') |
|
.replace(/NOSTR_PRIVATE_KEY[=:]\s*[^\s]+/gi, 'NOSTR_PRIVATE_KEY=[redacted]') |
|
.replace(/NSEC[=:]\s*[^\s]+/gi, 'NSEC=[redacted]'); |
|
}
|
|
|