pushSecretToNamespaceMembers method
Pushes one secret to every key package registered for its namespace
(minus this client). This is the mint/rotation push: it enumerates the
namespace's members via the directory, seals once per key package, and
puts the kpid-addressed envelope. excludeEnrollmentIds drops revoked
enrollments. Returns the number of key packages it was pushed to.
Implementation
Future<int> pushSecretToNamespaceMembers(
Secret secret, {
Set<String> excludeEnrollmentIds = const {},
}) async {
final members = await directory.listForNamespace(secret.namespace,
excludeEnrollmentIds: excludeEnrollmentIds);
int pushed = 0;
for (final member in members) {
final to = member.keyPackage;
if (to != null && to.kpid != null && to.kpid != kpid) {
await shareSecretWith(to, secret);
pushed++;
}
}
return pushed;
}