Class Task<Spec, Measurement>

A client for interacting with DAP servers, as specified by draft-ietf-ppm-dap-02. Instances of this class contain all of the necessary functionality to generate a privacy-preserving measurement report for the provided ClientVdaf, such as an implementation of Prio3, as specified by draft-irtf-cfrg-vdaf-03.

Type Parameters

Constructors

Properties

protocolVersion: string = DAP_VERSION

the protocol version for this task, usually in the form dap-{nn}

Methods

  • Fetches hpke configuration from the configured aggregators over the network. This will make one http/https request for each aggregator (leader and helper).

    Returns Promise<void>

    DAPError if any response is not Ok.

  • Produce a Report from the supplied Measurement

    This may make network requests to fetch key configuration from the leader and helper, if needed.

    Parameters

    • measurement: Measurement

      The type of this argument will be determined by the Vdaf that this task is constructed for.

    • Optionaloptions: ReportOptions

    Returns Promise<Report>

    Error if there is any issue in generating the report

  • A convenience function to fetch the key configuration (if needed), generate a report from the provided measurement and send that report to the leader aggregator.

    This will call Task.generateReport and Task.sendReport, while automatically handling any errors due to server key rotation with re-encryption and a retry.

    Parameters

    Returns Promise<void>

    DAPError if any http response is not Ok or Error if there is an issue generating the report