Skip to content

Commit

Permalink
Check all binding signatures for forwarding flag
Browse files Browse the repository at this point in the history
  • Loading branch information
larabr committed Jan 27, 2025
1 parent 4840bc6 commit eb79f09
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions lib/key/forwarding.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,17 @@ export const isForwardingKey = async (keyToCheck: PrivateKey, date: Date = serve
})
.catch(() => []); // throws if no valid decryption keys are found

const hasForwardingKeyFlag = (maybeForwardingSubkey: Subkey) => {
const flags = maybeForwardingSubkey.bindingSignatures[0].keyFlags?.[0];
if (!flags) {
return false;
}
return (flags & enums.keyFlags.forwardedCommunication) !== 0;
};
const hasForwardingKeyFlag = (maybeForwardingSubkey: Subkey) => (
maybeForwardingSubkey.bindingSignatures.length > 0 &&
maybeForwardingSubkey.bindingSignatures.every(({ keyFlags }) => {
const flags = keyFlags?.[0];
if (!flags) {
return false;
}
return (flags & enums.keyFlags.forwardedCommunication) !== 0;
})
);

const allValidKeys = allDecryptionKeys.every(
(key) => doesKeyPacketSupportForwarding(key) && hasForwardingKeyFlag(key as Subkey)
);
Expand Down

0 comments on commit eb79f09

Please sign in to comment.