$schema: "http://json-schema.org/draft-07/schema#" schemaVersion: "1.0.0" title: DCR Accepted Response (202) type: object description: >- Wird vom ZETA Guard zurückgegeben, wenn die initiale DCR-Anfrage kryptografisch valide war, aber eine asynchrone Herausforderung (Challenge) gelöst werden muss, bevor die endgültige client_id vergeben wird. # Die Variante wird über den `const`-Wert von `challenge_type` in den beiden # oneOf-Zweigen eindeutig bestimmt; die Validierung unter draft-07 ist damit # deterministisch. Das nachfolgende `discriminator`-Feld ist ein OpenAPI-3-Konstrukt # (kein draft-07-Keyword) und wird von JSON-Schema-Validatoren ignoriert; es dient # ausschließlich als Hinweis für den Code-Generator. oneOf: - $ref: "#/definitions/OtpChallengeResponse" - $ref: "#/definitions/TpmChallengeResponse" discriminator: propertyName: challenge_type definitions: # --- Gemeinsame Basis-Felder --- BaseResponse: type: object required: [transaction_id, status, expires_in] properties: transaction_id: type: string format: uuid description: >- Temporäre Transaktions-ID. Muss vom Client im /verify Request wieder mitgeschickt werden. status: type: string enum: [pending_verification] description: Der aktuelle Status der Registrierung. expires_in: type: integer description: Zeit in Sekunden, bis die transaction_id abläuft (z.B. 600). # --- TOFU / E-Mail OTP Fall --- OtpChallengeResponse: type: object allOf: - $ref: "#/definitions/BaseResponse" - type: object required: [challenge_type, message_id] properties: challenge_type: type: string const: email_otp message_id: type: string const: otp_verification description: >- Eindeutiger Identifikator für den Typ der Nachricht. Erlaubt es dem Client, einen lokalisierten Text (z. B. für die OTP-Eingabe) aus den eigenen App-Ressourcen anzuzeigen. # --- TPM MakeCredential Fall --- TpmChallengeResponse: type: object allOf: - $ref: "#/definitions/BaseResponse" - type: object required: [challenge_type, tpm_credential_blob, tpm_encrypted_secret] properties: challenge_type: type: string const: tpm_activation tpm_credential_blob: type: string description: >- Base64-kodierter CredentialBlob (TPM2B_ID_OBJECT), generiert durch den TPM-Befehl MakeCredential auf dem Server. tpm_encrypted_secret: type: string description: >- Base64-kodiertes verschlüsseltes Geheimnis (TPM2B_ENCRYPTED_SECRET), generiert durch MakeCredential. Der Client benötigt dies für ActivateCredential.