mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-20 15:20:23 +01:00
Move CertificateApi and RateLimitChallengeApi deps.
This commit is contained in:
committed by
Michelle Tang
parent
3087116618
commit
1ce41edc7f
@@ -17,7 +17,6 @@ import org.whispersystems.signalservice.internal.push.PreKeyResponse
|
||||
import org.whispersystems.signalservice.internal.push.PreKeyResponseItem
|
||||
import org.whispersystems.signalservice.internal.push.PushServiceSocket
|
||||
import org.whispersystems.signalservice.internal.push.RegistrationSessionMetadataJson
|
||||
import org.whispersystems.signalservice.internal.push.SenderCertificate
|
||||
import org.whispersystems.signalservice.internal.push.VerifyAccountResponse
|
||||
import org.whispersystems.signalservice.internal.push.WhoAmIResponse
|
||||
import java.security.SecureRandom
|
||||
@@ -27,8 +26,6 @@ import java.security.SecureRandom
|
||||
*/
|
||||
object MockProvider {
|
||||
|
||||
val senderCertificate = SenderCertificate().apply { certificate = ByteArray(0) }
|
||||
|
||||
val lockedFailure = PushServiceSocket.RegistrationLockFailure().apply {
|
||||
svr1Credentials = AuthCredentials.create("username", "password")
|
||||
svr2Credentials = AuthCredentials.create("username", "password")
|
||||
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.whispersystems.signalservice.api.ratelimit;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class SubmitPushChallengePayload {
|
||||
|
||||
@JsonProperty
|
||||
private String type;
|
||||
|
||||
@JsonProperty
|
||||
private String challenge;
|
||||
|
||||
public SubmitPushChallengePayload() {}
|
||||
|
||||
public SubmitPushChallengePayload(String challenge) {
|
||||
this.type = "rateLimitPushChallenge";
|
||||
this.challenge = challenge;
|
||||
}
|
||||
}
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.whispersystems.signalservice.api.ratelimit;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class SubmitRecaptchaChallengePayload {
|
||||
|
||||
@JsonProperty
|
||||
private String type;
|
||||
|
||||
@JsonProperty
|
||||
private String token;
|
||||
|
||||
@JsonProperty
|
||||
private String captcha;
|
||||
|
||||
public SubmitRecaptchaChallengePayload() {}
|
||||
|
||||
public SubmitRecaptchaChallengePayload(String challenge, String recaptchaToken) {
|
||||
this.type = "captcha";
|
||||
this.token = challenge;
|
||||
this.captcha = recaptchaToken;
|
||||
}
|
||||
}
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
package org.whispersystems.signalservice.internal.push;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||
import com.fasterxml.jackson.databind.JsonDeserializer;
|
||||
import com.fasterxml.jackson.databind.JsonSerializer;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
|
||||
import org.signal.core.util.Base64;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class SenderCertificate {
|
||||
|
||||
@JsonProperty
|
||||
@JsonDeserialize(using = ByteArrayDesieralizer.class)
|
||||
@JsonSerialize(using = ByteArraySerializer.class)
|
||||
public byte[] certificate;
|
||||
|
||||
public SenderCertificate() {}
|
||||
|
||||
public byte[] getCertificate() {
|
||||
return certificate;
|
||||
}
|
||||
|
||||
public static class ByteArraySerializer extends JsonSerializer<byte[]> {
|
||||
@Override
|
||||
public void serialize(byte[] value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
||||
gen.writeString(Base64.encodeWithPadding(value));
|
||||
}
|
||||
}
|
||||
|
||||
public static class ByteArrayDesieralizer extends JsonDeserializer<byte[]> {
|
||||
|
||||
@Override
|
||||
public byte[] deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
|
||||
return Base64.decode(p.getValueAsString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,14 +5,23 @@
|
||||
|
||||
package org.signal.network.api
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.databind.DeserializationContext
|
||||
import com.fasterxml.jackson.databind.JsonDeserializer
|
||||
import com.fasterxml.jackson.databind.JsonSerializer
|
||||
import com.fasterxml.jackson.databind.SerializerProvider
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize
|
||||
import org.signal.core.util.Base64
|
||||
import org.whispersystems.signalservice.api.NetworkResult
|
||||
import org.whispersystems.signalservice.api.websocket.SignalWebSocket
|
||||
import org.whispersystems.signalservice.internal.get
|
||||
import org.whispersystems.signalservice.internal.push.SenderCertificate
|
||||
import org.whispersystems.signalservice.internal.websocket.WebSocketRequestMessage
|
||||
|
||||
/**
|
||||
* Endpoints to get [org.whispersystems.signalservice.internal.push.SenderCertificate]s.
|
||||
* Endpoints to get sender certificates.
|
||||
*/
|
||||
class CertificateApi(private val authWebSocket: SignalWebSocket.AuthenticatedWebSocket) {
|
||||
|
||||
@@ -36,3 +45,22 @@ class CertificateApi(private val authWebSocket: SignalWebSocket.AuthenticatedWeb
|
||||
.map { it.certificate }
|
||||
}
|
||||
}
|
||||
|
||||
private class SenderCertificate {
|
||||
@JsonProperty
|
||||
@JsonDeserialize(using = ByteArrayDeserializer::class)
|
||||
@JsonSerialize(using = ByteArraySerializer::class)
|
||||
var certificate: ByteArray = byteArrayOf()
|
||||
|
||||
class ByteArraySerializer : JsonSerializer<ByteArray>() {
|
||||
override fun serialize(value: ByteArray, gen: JsonGenerator, serializers: SerializerProvider) {
|
||||
gen.writeString(Base64.encodeWithPadding(value))
|
||||
}
|
||||
}
|
||||
|
||||
class ByteArrayDeserializer : JsonDeserializer<ByteArray>() {
|
||||
override fun deserialize(p: JsonParser, ctxt: DeserializationContext): ByteArray {
|
||||
return Base64.decode(p.valueAsString)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,8 @@
|
||||
|
||||
package org.signal.network.api
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
import org.whispersystems.signalservice.api.NetworkResult
|
||||
import org.whispersystems.signalservice.api.ratelimit.SubmitPushChallengePayload
|
||||
import org.whispersystems.signalservice.api.ratelimit.SubmitRecaptchaChallengePayload
|
||||
import org.whispersystems.signalservice.api.websocket.SignalWebSocket
|
||||
import org.whispersystems.signalservice.internal.post
|
||||
import org.whispersystems.signalservice.internal.put
|
||||
@@ -58,3 +57,19 @@ class RateLimitChallengeApi(private val authWebSocket: SignalWebSocket.Authentic
|
||||
return NetworkResult.fromWebSocketRequest(authWebSocket, request)
|
||||
}
|
||||
}
|
||||
|
||||
private class SubmitPushChallengePayload(@JsonProperty val challenge: String) {
|
||||
@JsonProperty
|
||||
val type: String = "rateLimitPushChallenge"
|
||||
}
|
||||
|
||||
private class SubmitRecaptchaChallengePayload(challenge: String, recaptchaToken: String) {
|
||||
@JsonProperty
|
||||
val type: String = "captcha"
|
||||
|
||||
@JsonProperty
|
||||
val token: String = challenge
|
||||
|
||||
@JsonProperty
|
||||
val captcha: String = recaptchaToken
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user