Skip to content

Commit 1af292c

Browse files
committed
lib: document more internal helpers
Signed-off-by: Filip Skokan <[email protected]>
1 parent 7bcee80 commit 1af292c

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

lib/internal/crypto/keys.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -944,14 +944,31 @@ function getCryptoKeyAlgorithm(key) {
944944
return getSlots(key)[kSlotAlgorithm];
945945
}
946946

947+
/**
948+
* Returns the CryptoKey's native `[[usages]]` mask.
949+
* @param {CryptoKey} key
950+
* @returns {number}
951+
*/
947952
function getCryptoKeyUsagesMask(key) {
948953
return getSlots(key)[kSlotUsagesMask];
949954
}
950955

956+
/**
957+
* Returns whether a CryptoKey's `[[usages]]` contains `usage`.
958+
* @param {CryptoKey} key
959+
* @param {string} usage
960+
* @returns {boolean}
961+
*/
951962
function hasCryptoKeyUsage(key, usage) {
952963
return hasUsage(getCryptoKeyUsagesMask(key), usage);
953964
}
954965

966+
/**
967+
* Returns the CryptoKey's cached canonical usages array for internal
968+
* consumers, expanding it from the native usage mask on first access.
969+
* @param {Array} slots
970+
* @returns {string[]}
971+
*/
955972
function getCryptoKeyUsagesFromSlots(slots) {
956973
let usages = slots[kSlotUsages];
957974
if (usages === undefined) {
@@ -963,7 +980,8 @@ function getCryptoKeyUsagesFromSlots(slots) {
963980

964981
/**
965982
* Returns the CryptoKey's `[[usages]]` internal slot, bypassing the
966-
* public `usages` getter (which returns a cloned array).
983+
* public `usages` getter (which returns a cloned array). The internal
984+
* array is expanded lazily from the native usage mask.
967985
* @param {CryptoKey} key
968986
* @returns {string[]}
969987
*/

lib/internal/crypto/util.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,12 @@ function getStringOption(options, key) {
717717
return value;
718718
}
719719

720+
/**
721+
* Returns the requested usages that are present in `usageSet`.
722+
* @param {SafeSet<string>} usageSet
723+
* @param {...string} usages
724+
* @returns {SafeSet<string>}
725+
*/
720726
function getUsagesUnion(usageSet, ...usages) {
721727
const newset = new SafeSet();
722728
for (let n = 0; n < usages.length; n++) {
@@ -768,6 +774,12 @@ function getUsagesMask(usageSet) {
768774
return mask;
769775
}
770776

777+
/**
778+
* Returns whether `mask` contains `usage`.
779+
* @param {number} mask
780+
* @param {string} usage
781+
* @returns {boolean}
782+
*/
771783
function hasUsage(mask, usage) {
772784
return (mask & kUsageMasks[usage]) !== 0;
773785
}

0 commit comments

Comments
 (0)