requestSecretsFromNamespace method
Broadcasts a pull request for held secrets to every key package
registered for namespace (minus this client). Holders that pass the
answer policy reply by sharing the matching secrets; the caller typically
then waitForSecrets. Filter the request by exact names and/or a
namePrefix (e.g. __rk. for epoch keys). excludeEnrollmentIds drops
revoked enrollments. Returns the number of key packages the request was
sent to.
Implementation
Future<int> requestSecretsFromNamespace(
String namespace, {
List<String>? names,
String? namePrefix,
Set<String> excludeEnrollmentIds = const {},
}) async {
final members = await directory.listForNamespace(namespace,
excludeEnrollmentIds: excludeEnrollmentIds);
int sent = 0;
for (final member in members) {
final to = member.keyPackage;
if (to != null && to.kpid != null && to.kpid != kpid) {
await sendEnvelope(to, namespace, {
'kind': secretRequestKind,
if (names != null) 'want': names,
if (namePrefix != null) 'namePrefix': namePrefix,
});
sent++;
}
}
return sent;
}