MCPcopy
hub / github.com/mailvelope/mailvelope / getKeyServerSync

Method getKeyServerSync

src/controller/app.controller.js:148–177  ·  view source on GitHub ↗
({fingerprint, keyringId})

Source from the content-addressed store, hash-verified

146 }
147
148 async getKeyServerSync({fingerprint, keyringId}) {
149 const result = {
150 status: false,
151 userIds: {}
152 };
153 try {
154 const keyring = await keyringById(keyringId);
155 const localKey = keyring.getPrivateKeyByFpr(fingerprint).toPublic();
156 const remote = await mveloKeyServer.fetch({fingerprint});
157 if (!remote) {
158 return result;
159 }
160 // found key on server
161 for (const userId of remote.userIds) {
162 // get remote user IDs
163 result.userIds[userId.email] = userId.verified;
164 }
165 // filter local user IDs to match remote userIDs
166 localKey.users = localKey.users.filter(({userID: {email}}) => Object.keys(result.userIds).includes(email) && result.userIds[email]);
167 const remoteKey = await readKey({armoredKey: remote.publicKeyArmored});
168 const remoteKeyModTime = new Date(getLastModifiedDate(remoteKey)).getTime();
169 const localKeyModTime = new Date(getLastModifiedDate(localKey)).getTime();
170 if (remoteKeyModTime !== localKeyModTime) {
171 result.status = 'mod';
172 } else {
173 result.status = 'sync';
174 }
175 } catch (e) {}
176 return result;
177 }
178
179 async syncKeyServer({emails, fingerprint, keyringId, sync}) {
180 let result;

Callers

nothing calls this directly

Calls 2

getLastModifiedDateFunction · 0.90
getPrivateKeyByFprMethod · 0.80

Tested by

no test coverage detected