Contents

POST /auditors/$AUDITOR_PUB/$H_DENOM_PUB#

This is used to add an auditor signature to the /keys response. It affirms to wallets and merchants that this auditor is indeed auditing the coins issued by the respective denomination. There is no “delete” operation for this, as auditors can only stop auditing a denomination when it expires.

Request:

The request must be a AuditorSignatureAddMessage.

Response:

204 No content:

The backend has successfully stored the auditor signature.

403 Forbidden:

The auditor signature is invalid. This response comes with a standard ErrorDetail response with a code of TALER_EC_EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID.

404 Not found:

The denomination key for which the auditor is providing a signature is unknown. The response will be a DenominationUnknownMessage.

410 Gone:

This auditor is no longer supported by the exchange. This response comes with a standard ErrorDetail response with a code of TALER_EC_EXCHANGE_AUDITORS_AUDITOR_INACTIVE.

412 Precondition failed:

This auditor is not yet known to the exchange. This response comes with a standard ErrorDetail response with a code of TALER_EC_EXCHANGE_AUDITORS_AUDITOR_UNKNOWN. FIXME: probably should be changed to a 404!

413 Request entity too large:

The uploaded body is to long, it exceeds the size limit. Returned with an error code of TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT.

500 Internal Server Error:

The server experienced an internal error. This response comes with a standard ErrorDetail response. Possible error codes include TALER_EC_GENERIC_DB_FETCH_FAILED or TALER_EC_GENERIC_DB_STORE_FAILED.

Details:

interface DenominationUnknownMessage {

  // Taler error code
  // TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN
  code: Integer;

  // Signature by the exchange over a
  // TALER_DenominationUnknownAffirmationPS.
  // Must have purpose TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_UNKNOWN.
  exchange_sig: EddsaSignature;

  // Public key of the exchange used to create
  // the 'exchange_sig.
  exchange_pub: EddsaPublicKey;

  // Hash of the denomination public key that is unknown.
  h_denom_pub: HashCode;

  // When was the signature created.
  timestamp: Timestamp;

}
interface AuditorSignatureAddMessage {

  // Signature by the auditor over a
  // TALER_ExchangeKeyValidityPS.
  // Must have purpose TALER_SIGNATURE_AUDITOR_EXCHANGE_KEYS.
  auditor_sig: EddsaSignature;

}