@fly/cdn
Version:
Fly's TypeScript CDN
30 lines • 3.52 kB
JavaScript
/** @module HTTP */
import * as sjcl from 'sjcl';
/** @hidden */
export function createHmac(_algo, key) {
const mac = new sjcl.misc.hmac(typeof key === 'string' ? sjcl.codec.utf8String.toBits(key) : key);
return {
update: (data) => {
mac.update(data);
return {
digest: (encoding) => {
let result = mac.digest();
return encoding === 'hex' ? sjcl.codec.hex.fromBits(result) : result;
},
};
},
};
}
/** @hidden */
export function createHash() {
const hash = new sjcl.hash.sha256();
return {
update: (data) => {
hash.update(data);
return {
digest: () => sjcl.codec.hex.fromBits(hash.finalize()),
};
},
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoaW1zL2NyeXB0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUI7QUFDbkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFFNUIsY0FBYztBQUNkLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYSxFQUFFLEdBQTJCO0lBQ2pFLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xHLE9BQU87UUFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUNyQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLE9BQU87Z0JBQ0gsTUFBTSxFQUFFLENBQUMsUUFBZ0IsRUFBRSxFQUFFO29CQUN6QixJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzFCLE9BQU8sUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pFLENBQUM7YUFDSixDQUFDO1FBQ04sQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxVQUFVO0lBQ3RCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQyxPQUFPO1FBQ0gsTUFBTSxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixPQUFPO2dCQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3pELENBQUM7UUFDTixDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBIVFRQICovXG5pbXBvcnQgKiBhcyBzamNsIGZyb20gJ3NqY2wnXG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSG1hYyhfYWxnbzogc3RyaW5nLCBrZXk6IHN0cmluZyB8IHNqY2wuQml0QXJyYXkpIHtcbiAgICBjb25zdCBtYWMgPSBuZXcgc2pjbC5taXNjLmhtYWModHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBzamNsLmNvZGVjLnV0ZjhTdHJpbmcudG9CaXRzKGtleSkgOiBrZXkpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHVwZGF0ZTogKGRhdGE6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgbWFjLnVwZGF0ZShkYXRhKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGlnZXN0OiAoZW5jb2Rpbmc6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbWFjLmRpZ2VzdCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RpbmcgPT09ICdoZXgnID8gc2pjbC5jb2RlYy5oZXguZnJvbUJpdHMocmVzdWx0KSA6IHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhhc2goKSB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyBzamNsLmhhc2guc2hhMjU2KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXBkYXRlOiAoZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBoYXNoLnVwZGF0ZShkYXRhKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGlnZXN0OiAoKSA9PiBzamNsLmNvZGVjLmhleC5mcm9tQml0cyhoYXNoLmZpbmFsaXplKCkpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuIl19