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 }