(keyring, signerEmail, signatures)
| 26 | * @param {Array<{valid, created, fingerprint}>} signatures |
| 27 | */ |
| 28 | export async function updateKeyBinding(keyring, signerEmail, signatures) { |
| 29 | if (!signerEmail) { |
| 30 | return; |
| 31 | } |
| 32 | const validSig = signatures.filter(sig => sig.valid === true); |
| 33 | if (!validSig.length) { |
| 34 | return; |
| 35 | } |
| 36 | const {fingerprint, created} = validSig[0]; |
| 37 | const last_seen = created.getTime(); |
| 38 | const keyBindingMap = await getKeyringAttr(keyring.id, KEY_BINDING) || {}; |
| 39 | const keyBinding = keyBindingMap[signerEmail]; |
| 40 | if (keyBinding && keyBinding.last_seen >= last_seen) { |
| 41 | return; |
| 42 | } |
| 43 | keyBindingMap[signerEmail] = {fingerprint, last_seen}; |
| 44 | await setKeyringAttr(keyring.id, {[KEY_BINDING]: keyBindingMap}); |
| 45 | } |
| 46 | |
| 47 | export async function getKeyBinding(keyring, email) { |
| 48 | const keyBindingMap = await getKeyringAttr(keyring.id, KEY_BINDING) || {}; |
no test coverage detected