From 3eb49ad7b62e67102961c88f83cb27b331f32b59 Mon Sep 17 00:00:00 2001 From: Documentation Updater Date: Mon, 26 Feb 2024 16:04:55 +0000 Subject: [PATCH] Updating documentation --- signal-server-openapi.yaml | 204 +++++++++++++++++-------------------- 1 file changed, 94 insertions(+), 110 deletions(-) diff --git a/signal-server-openapi.yaml b/signal-server-openapi.yaml index 714d8ba9a..ebfc3c3a6 100644 --- a/signal-server-openapi.yaml +++ b/signal-server-openapi.yaml @@ -1309,11 +1309,6 @@ paths: Clients may retry the PUT in the event of an HTTP/5xx response (except HTTP/508) from the server, but must implement an exponential back-off system and limit the total number of retries. operationId: requestPushChallenge - requestBody: - content: - '*/*': - schema: - $ref: '#/components/schemas/PushChallengeConfig' responses: "200": description: | @@ -1516,6 +1511,47 @@ paths: description: default response content: '*/*': {} + /v2/keys/check: + post: + tags: + - Keys + summary: Check keys + description: | + Checks that client and server have consistent views of repeated-use keys. For a given identity type, clients + submit a digest of their repeated-use key material. The digest is calculated as: + + SHA256(identityKeyBytes || signedEcPreKeyId || signedEcPreKeyIdBytes || lastResortKeyId || lastResortKeyBytes) + + …where the elements of the hash are: + + - identityKeyBytes: the serialized form of the client's public identity key as produced by libsignal (i.e. one + version byte followed by 32 bytes of key material for a total of 33 bytes) + - signedEcPreKeyId: an 8-byte, big-endian representation of the ID of the client's signed EC pre-key + - signedEcPreKeyBytes: the serialized form of the client's signed EC pre-key as produced by libsignal (i.e. one + version byte followed by 32 bytes of key material for a total of 33 bytes) + - lastResortKeyId: an 8-byte, big-endian representation of the ID of the client's last-resort Kyber key + - lastResortKeyBytes: the serialized form of the client's last-resort Kyber key as produced by libsignal (i.e. one + version byte followed by 1568 bytes of key material for a total of 1569 bytes) + operationId: checkKeys + parameters: + - name: User-Agent + in: header + schema: + type: string + responses: + "200": + description: Indicates that client and server have consistent views of repeated-use + keys + "401": + description: Account authentication check failed + "409": + description: |2 + Indicates that client and server have inconsistent views of repeated-use keys or one or more repeated-use keys could + not be found + "422": + description: Invalid request format + security: + - authenticatedAccount: [] /v2/keys/{identifier}/{device_id}: get: tags: @@ -1618,7 +1654,7 @@ paths: - Keys summary: Upload new prekeys description: Upload new pre-keys for this device. - operationId: setKeys_1 + operationId: setKeys parameters: - name: identity in: query @@ -1648,47 +1684,6 @@ paths: description: Invalid request format. security: - authenticatedAccount: [] - /v2/keys/check: - post: - tags: - - Keys - summary: Check keys - description: | - Checks that client and server have consistent views of repeated-use keys. For a given identity type, clients - submit a digest of their repeated-use key material. The digest is calculated as: - - SHA256(identityKeyBytes || signedEcPreKeyId || signedEcPreKeyIdBytes || lastResortKeyId || lastResortKeyBytes) - - …where the elements of the hash are: - - - identityKeyBytes: the serialized form of the client's public identity key as produced by libsignal (i.e. one - version byte followed by 32 bytes of key material for a total of 33 bytes) - - signedEcPreKeyId: an 8-byte, big-endian representation of the ID of the client's signed EC pre-key - - signedEcPreKeyBytes: the serialized form of the client's signed EC pre-key as produced by libsignal (i.e. one - version byte followed by 32 bytes of key material for a total of 33 bytes) - - lastResortKeyId: an 8-byte, big-endian representation of the ID of the client's last-resort Kyber key - - lastResortKeyBytes: the serialized form of the client's last-resort Kyber key as produced by libsignal (i.e. one - version byte followed by 1568 bytes of key material for a total of 1569 bytes) - operationId: setKeys - parameters: - - name: User-Agent - in: header - schema: - type: string - responses: - "200": - description: Indicates that client and server have consistent views of repeated-use - keys - "401": - description: Account authentication check failed - "409": - description: |2 - Indicates that client and server have inconsistent views of repeated-use keys or one or more repeated-use keys could - not be found - "422": - description: Invalid request format - security: - - authenticatedAccount: [] /v2/keys/signed: put: tags: @@ -2919,6 +2914,8 @@ components: description: A handle that can be included in username links to retrieve the stored encrypted username ConfirmUsernameHashRequest: + required: + - zkProof type: object properties: usernameHash: @@ -3820,14 +3817,6 @@ components: type: string discriminator: propertyName: type - ScoreThreshold: - type: object - properties: - scoreThreshold: - type: number - format: float - PushChallengeConfig: - type: object VerificationCode: type: object properties: @@ -3958,6 +3947,54 @@ components: type: object client: $ref: '#/components/schemas/WebSocketClient' + CheckKeysRequest: + required: + - digest + - identityType + type: object + properties: + identityType: + type: string + description: | + The identity type for which to check for a shared view of repeated-use keys + enum: + - ACI + - PNI + digest: + type: array + description: | + A 32-byte digest of the client's repeated-use keys for the given identity type. The digest is calculated as: + + SHA256(identityKeyBytes || signedEcPreKeyId || signedEcPreKeyIdBytes || lastResortKeyId || lastResortKeyBytes) + + …where the elements of the hash are: + + - identityKeyBytes: the serialized form of the client's public identity key as produced by libsignal (i.e. one + version byte followed by 32 bytes of key material for a total of 33 bytes) + - signedEcPreKeyId: an 8-byte, big-endian representation of the ID of the client's signed EC pre-key + - signedEcPreKeyBytes: the serialized form of the client's signed EC pre-key as produced by libsignal (i.e. one + version byte followed by 32 bytes of key material for a total of 33 bytes) + - lastResortKeyId: an 8-byte, big-endian representation of the ID of the client's last-resort Kyber key + - lastResortKeyBytes: the serialized form of the client's last-resort Kyber key as produced by libsignal (i.e. + one version byte followed by 1568 bytes of key material for a total of 1569 bytes) + items: + type: string + description: | + A 32-byte digest of the client's repeated-use keys for the given identity type. The digest is calculated as: + + SHA256(identityKeyBytes || signedEcPreKeyId || signedEcPreKeyIdBytes || lastResortKeyId || lastResortKeyBytes) + + …where the elements of the hash are: + + - identityKeyBytes: the serialized form of the client's public identity key as produced by libsignal (i.e. one + version byte followed by 32 bytes of key material for a total of 33 bytes) + - signedEcPreKeyId: an 8-byte, big-endian representation of the ID of the client's signed EC pre-key + - signedEcPreKeyBytes: the serialized form of the client's signed EC pre-key as produced by libsignal (i.e. one + version byte followed by 32 bytes of key material for a total of 33 bytes) + - lastResortKeyId: an 8-byte, big-endian representation of the ID of the client's last-resort Kyber key + - lastResortKeyBytes: the serialized form of the client's last-resort Kyber key as produced by libsignal (i.e. + one version byte followed by 1568 bytes of key material for a total of 1569 bytes) + format: byte ECPreKey: type: object properties: @@ -4011,54 +4048,6 @@ components: items: type: string format: byte - CheckKeysRequest: - required: - - digest - - identityType - type: object - properties: - identityType: - type: string - description: | - The identity type for which to check for a shared view of repeated-use keys - enum: - - ACI - - PNI - digest: - type: array - description: | - A 32-byte digest of the client's repeated-use keys for the given identity type. The digest is calculated as: - - SHA256(identityKeyBytes || signedEcPreKeyId || signedEcPreKeyIdBytes || lastResortKeyId || lastResortKeyBytes) - - …where the elements of the hash are: - - - identityKeyBytes: the serialized form of the client's public identity key as produced by libsignal (i.e. one - version byte followed by 32 bytes of key material for a total of 33 bytes) - - signedEcPreKeyId: an 8-byte, big-endian representation of the ID of the client's signed EC pre-key - - signedEcPreKeyBytes: the serialized form of the client's signed EC pre-key as produced by libsignal (i.e. one - version byte followed by 32 bytes of key material for a total of 33 bytes) - - lastResortKeyId: an 8-byte, big-endian representation of the ID of the client's last-resort Kyber key - - lastResortKeyBytes: the serialized form of the client's last-resort Kyber key as produced by libsignal (i.e. - one version byte followed by 1568 bytes of key material for a total of 1569 bytes) - items: - type: string - description: | - A 32-byte digest of the client's repeated-use keys for the given identity type. The digest is calculated as: - - SHA256(identityKeyBytes || signedEcPreKeyId || signedEcPreKeyIdBytes || lastResortKeyId || lastResortKeyBytes) - - …where the elements of the hash are: - - - identityKeyBytes: the serialized form of the client's public identity key as produced by libsignal (i.e. one - version byte followed by 32 bytes of key material for a total of 33 bytes) - - signedEcPreKeyId: an 8-byte, big-endian representation of the ID of the client's signed EC pre-key - - signedEcPreKeyBytes: the serialized form of the client's signed EC pre-key as produced by libsignal (i.e. one - version byte followed by 32 bytes of key material for a total of 33 bytes) - - lastResortKeyId: an 8-byte, big-endian representation of the ID of the client's last-resort Kyber key - - lastResortKeyBytes: the serialized form of the client's last-resort Kyber key as produced by libsignal (i.e. - one version byte followed by 1568 bytes of key material for a total of 1569 bytes) - format: byte SetKeysRequest: type: object properties: @@ -4258,6 +4247,8 @@ components: type: boolean pnp: type: boolean + giftBadges: + type: boolean VersionedProfileResponse: type: object properties: @@ -4801,13 +4792,6 @@ components: - voice client: type: string - SenderOverride: - type: object - properties: - smsSenderOverride: - type: string - voiceSenderOverride: - type: string SubmitVerificationCodeRequest: required: - code