create method
Implementation
Future<SenderKeyDistributionMessageWrapper> create(
SenderKeyName senderKeyName) async {
try {
final senderKeyRecord =
await _senderKeyStore.loadSenderKey(senderKeyName);
if (senderKeyRecord.isEmpty) {
senderKeyRecord.setSenderKeyState(generateSenderKeyId(), 0,
generateSenderKey(), generateSenderSigningKey());
await _senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);
}
final state = senderKeyRecord.getSenderKeyState();
return SenderKeyDistributionMessageWrapper(
state.keyId,
state.senderChainKey.iteration,
state.senderChainKey.seed,
state.signingKeyPublic);
} on InvalidKeyIdException catch (e) {
throw AssertionError(e);
} on InvalidKeyException catch (e) {
throw AssertionError(e);
}
}