Fix initial kyber key hydration; improve generation and logging
This commit is contained in:
		
					parent
					
						
							
								3f399b1329
							
						
					
				
			
			
				commit
				
					
						9d03d9b59c
					
				
			
		
					 2 changed files with 11 additions and 7 deletions
				
			
		| 
						 | 
					@ -281,7 +281,7 @@ async function bulkAddKyberPreKeys(
 | 
				
			||||||
  await channels.bulkAddKyberPreKeys(updated);
 | 
					  await channels.bulkAddKyberPreKeys(updated);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
async function getAllKyberPreKeys(): Promise<Array<KyberPreKeyType>> {
 | 
					async function getAllKyberPreKeys(): Promise<Array<KyberPreKeyType>> {
 | 
				
			||||||
  const keys = await channels.getAllPreKeys();
 | 
					  const keys = await channels.getAllKyberPreKeys();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return keys.map(key => specToBytes(KYBER_PRE_KEY_SPEC, key));
 | 
					  return keys.map(key => specToBytes(KYBER_PRE_KEY_SPEC, key));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -384,12 +384,12 @@ export default class AccountManager extends EventTarget {
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
      const errorText = Errors.toLogFormat(error);
 | 
					      const errorText = Errors.toLogFormat(error);
 | 
				
			||||||
      throw new Error(
 | 
					      throw new Error(
 | 
				
			||||||
        `generateNewKyberPreKeys: Failed to fetch identity key - ${errorText}`
 | 
					        `getIdentityKeyOrThrow: Failed to fetch identity key - ${errorText}`
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!identityKey) {
 | 
					    if (!identityKey) {
 | 
				
			||||||
      throw new Error('generateNewKyberPreKeys: Missing identity key');
 | 
					      throw new Error('getIdentityKeyOrThrow: Missing identity key');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return identityKey;
 | 
					    return identityKey;
 | 
				
			||||||
| 
						 | 
					@ -418,8 +418,10 @@ export default class AccountManager extends EventTarget {
 | 
				
			||||||
      toSave.push(generatePreKey(keyId));
 | 
					      toSave.push(generatePreKey(keyId));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    await store.storePreKeys(ourUuid, toSave);
 | 
					    await Promise.all([
 | 
				
			||||||
    await storage.put(PRE_KEY_ID_KEY[uuidKind], startId + count);
 | 
					      store.storePreKeys(ourUuid, toSave),
 | 
				
			||||||
 | 
					      storage.put(PRE_KEY_ID_KEY[uuidKind], startId + count),
 | 
				
			||||||
 | 
					    ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return toSave.map(key => ({
 | 
					    return toSave.map(key => ({
 | 
				
			||||||
      keyId: key.keyId,
 | 
					      keyId: key.keyId,
 | 
				
			||||||
| 
						 | 
					@ -467,8 +469,10 @@ export default class AccountManager extends EventTarget {
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    await store.storeKyberPreKeys(ourUuid, toSave);
 | 
					    await Promise.all([
 | 
				
			||||||
    await storage.put(KYBER_KEY_ID_KEY[uuidKind], startId + count);
 | 
					      store.storeKyberPreKeys(ourUuid, toSave),
 | 
				
			||||||
 | 
					      storage.put(KYBER_KEY_ID_KEY[uuidKind], startId + count),
 | 
				
			||||||
 | 
					    ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return toUpload;
 | 
					    return toUpload;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue