MCPcopy
hub / github.com/mailvelope/mailvelope / importPrivateKey

Method importPrivateKey

src/modules/KeyringLocal.js:152–200  ·  view source on GitHub ↗
(armored)

Source from the content-addressed store, hash-verified

150 }
151
152 async importPrivateKey(armored) {
153 const result = [];
154 let privKeys;
155 try {
156 privKeys = await readKeys({armoredKeys: armored});
157 } catch (e) {
158 console.log('Error parsing armored key:', e);
159 result.push({
160 type: 'error',
161 message: l10n.get('key_import_private_read', [e.message])
162 });
163 }
164 for (let privKey of privKeys) {
165 if (!privKey.isPrivate()) {
166 result.push({type: 'error', message: l10n.get('key_import_private_read', 'Internal error')});
167 continue;
168 }
169 // check for existing keys
170 checkKeyId(privKey, this.keystore);
171 const fingerprint = privKey.getFingerprint();
172 const keyId = privKey.getKeyID().toHex().toUpperCase();
173 privKey = await sanitizeKey(privKey);
174 if (!privKey) {
175 result.push({
176 type: 'error',
177 message: l10n.get('key_import_error_no_uid', [keyId])
178 });
179 continue;
180 }
181 const {userId} = await getUserInfo(privKey);
182 let key = this.keystore.getKeysForId(fingerprint);
183 if (key) {
184 key = key[0];
185 await this.updateKey({srcKey: privKey, destKey: key, store: false});
186 result.push({
187 type: 'success',
188 message: l10n.get(key.isPrivate() ? 'key_import_private_update' : 'key_import_private_exists', [keyId, userId])
189 });
190 } else {
191 this.keystore.privateKeys.push(privKey);
192 result.push({
193 type: 'success',
194 message: l10n.get('key_import_private_success', [keyId, userId])
195 });
196 await this.sync.add(fingerprint, keyringSync.INSERT);
197 }
198 }
199 return result;
200 }
201
202 async removeKey(fingerprint, type) {
203 const removedKey = super.removeKey(fingerprint, type);

Callers 1

importKeysMethod · 0.95

Calls 11

updateKeyMethod · 0.95
checkKeyIdFunction · 0.90
sanitizeKeyFunction · 0.90
getUserInfoFunction · 0.90
isPrivateMethod · 0.80
toHexMethod · 0.80
getKeysForIdMethod · 0.80
addMethod · 0.80
pushMethod · 0.45
getMethod · 0.45
getKeyIDMethod · 0.45

Tested by

no test coverage detected