@fdm-monster/server
Version:
FDM Monster is a bulk OctoPrint manager to set up, configure and monitor 3D printers. Our aim is to provide extremely optimized websocket performance and reliability.
28 lines (27 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "generateDigestAuthHeader", {
enumerable: true,
get: function() {
return generateDigestAuthHeader;
}
});
const _nodecrypto = require("node:crypto");
function generateDigestAuthHeader(params) {
const { username, password, method, uri, realm, nonce, qop, nc, cnonce } = params;
const ha1 = (0, _nodecrypto.createHash)("md5").update(`${username}:${realm}:${password}`).digest("hex");
const ha2 = (0, _nodecrypto.createHash)("md5").update(`${method}:${uri}`).digest("hex");
let response;
let authHeader;
if (qop) {
response = (0, _nodecrypto.createHash)("md5").update(`${ha1}:${nonce}:${nc}:${cnonce}:${qop}:${ha2}`).digest("hex");
authHeader = `Digest username="${username}", realm="${realm}", nonce="${nonce}", uri="${uri}", qop=${qop}, nc=${nc}, cnonce="${cnonce}", response="${response}"`;
} else {
response = (0, _nodecrypto.createHash)("md5").update(`${ha1}:${nonce}:${ha2}`).digest("hex");
authHeader = `Digest username="${username}", realm="${realm}", nonce="${nonce}", uri="${uri}", response="${response}"`;
}
return authHeader;
}
//# sourceMappingURL=digest-auth.util.js.map