taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

post-management-keys.rst (2942B)


      1 .. http:post:: /management/keys
      2 
      3   Provide master signatures for future public keys to be used by the exchange.
      4   Only to be used by the exchange's offline key management team. Not useful
      5   for anyone else.
      6 
      7   **Request:**
      8 
      9   The request body must be a `MasterSignatures` object.
     10 
     11   **Response:**
     12 
     13   :http:statuscode:`204 No content`:
     14     The request was successfully processed.
     15   :http:statuscode:`403 Forbidden`:
     16     A provided signature is invalid.
     17     This response comes with a standard `ErrorDetail` response.
     18     Possible error codes include
     19     ``TALER_EC_EXCHANGE_MANAGEMENT_KEYS_DENOMKEY_ADD_SIGNATURE_INVALID`` or
     20     ``TALER_EC_EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_ADD_SIGNATURE_INVALID``.
     21   :http:statuscode:`404 Not found`:
     22     One of the keys for which a signature was provided is unknown to the exchange.
     23     This response comes with a standard `ErrorDetail` response.
     24     Possible error codes include
     25     ``TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN`` or
     26     ``TALER_EC_EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_UNKNOWN``.
     27   :http:statuscode:`409 Conflict`:
     28     The denomination or signing key meta data conflicts with existing keys.
     29     This response comes with a standard `ErrorDetail` response with
     30     a code of ``TALER_EC_EXCHANGE_MANAGEMENT_CONFLICTING_DENOMINATION_META_DATA``
     31     or ``TALER_EC_EXCHANGE_MANAGEMENT_CONFLICTING_SIGNKEY_META_DATA``.
     32   :http:statuscode:`413 Request entity too large`:
     33     The uploaded body is to long, it exceeds the size limit.
     34     Returned with an error code of
     35     ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``.
     36   :http:statuscode:`500 Internal Server Error`:
     37     The server experienced an internal error.
     38     This response comes with a standard `ErrorDetail` response.
     39     Possible error codes include
     40     ``TALER_EC_GENERIC_DB_FETCH_FAILED``,
     41     ``TALER_EC_GENERIC_DB_STORE_FAILED``,
     42     ``TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING``, or
     43     ``TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION``.
     44 
     45   **Details:**
     46 
     47   .. ts:def:: MasterSignatures
     48 
     49     interface MasterSignatures {
     50 
     51       // Provided master signatures for future denomination keys.
     52       denom_sigs: DenomSignature[];
     53 
     54       // Provided master signatures for future online signing keys.
     55       signkey_sigs: SignKeySignature[];
     56 
     57     }
     58 
     59   .. ts:def:: DenomSignature
     60 
     61     interface DenomSignature {
     62 
     63       // Hash of the public key of the denomination.
     64       h_denom_pub: HashCode;
     65 
     66       // Signature over `TALER_DenominationKeyValidityPS`.
     67       // Must have purpose ``TALER_SIGNATURE_MASTER_DENOMINATION_KEY_VALIDITY``
     68       master_sig: EddsaSignature;
     69 
     70     }
     71 
     72   .. ts:def:: SignKeySignature
     73 
     74     interface SignKeySignature {
     75       // The actual exchange's EdDSA signing public key.
     76       exchange_pub: EddsaPublicKey;
     77 
     78       // Signature by the exchange master key over
     79       // `TALER_ExchangeSigningKeyValidityPS`.
     80       // Must have purpose ``TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY``.
     81       master_sig: EddsaSignature;
     82 
     83     }