dvSignModuleManifest function

String dvSignModuleManifest(
  1. DVModuleManifest manifest, {
  2. required Uint8List privateKey,
  3. required String keyId,
})

A signed manifest document, as the module publishes it.

The signature is over DVModuleManifest.canonical, and the document carries the manifest alongside it so a parent can read what it is being asked to trust before deciding whether to trust it.

Implementation

String dvSignModuleManifest(
  DVModuleManifest manifest, {
  required Uint8List privateKey,
  required String keyId,
}) {
  final Uint8List signature =
      dvWebPushSignEs256(utf8.encode(manifest.canonical()), privateKey);
  return jsonEncode(<String, Object?>{
    'manifest': manifest.toJson(),
    'keyId': keyId,
    'signature': dvWebPushBase64Encode(signature),
  });
}