@@ -2,9 +2,9 @@ package org.session.libsession.messaging.file_server
22
33import android.util.Base64
44import kotlinx.coroutines.CancellationException
5+ import network.loki.messenger.libsession_util.Curve25519
6+ import network.loki.messenger.libsession_util.ED25519
57import network.loki.messenger.libsession_util.util.BlindKeyAPI
6- import nl.komponents.kovenant.Promise
7- import nl.komponents.kovenant.functional.map
88import okhttp3.Headers.Companion.toHeaders
99import okhttp3.HttpUrl
1010import okhttp3.MediaType.Companion.toMediaType
@@ -15,6 +15,7 @@ import org.session.libsession.snode.OnionRequestAPI
1515import org.session.libsession.snode.utilities.await
1616import org.session.libsignal.utilities.ByteArraySlice
1717import org.session.libsignal.utilities.HTTP
18+ import org.session.libsignal.utilities.Hex
1819import org.session.libsignal.utilities.JsonUtil
1920import org.session.libsignal.utilities.Log
2021import org.session.libsignal.utilities.toHexString
@@ -36,7 +37,7 @@ class FileServerApi @Inject constructor(
3637
3738 val DEFAULT_FILE_SERVER : FileServer = FileServer (
3839 url = " http://filev2.getsession.org" ,
39- publicKeyHex = " da21e1d886c6fbaea313f75298bd64aab03a97ce985b46bb2dad9f2089c8ee59 "
40+ ed25519PublicKeyHex = " b8eef9821445ae16e2e97ef8aa6fe782fd11ad5253cd6723b281341dba22e371 "
4041 )
4142 }
4243
@@ -97,7 +98,10 @@ class FileServerApi @Inject constructor(
9798 val response = OnionRequestAPI .sendOnionRequest(
9899 request = requestBuilder.build(),
99100 server = request.fileServer.url.host,
100- x25519PublicKey = request.fileServer.publicKeyHex
101+ x25519PublicKey =
102+ Hex .toStringCondensed(
103+ Curve25519 .pubKeyFromED25519(Hex .fromStringCondensed(request.fileServer.ed25519PublicKeyHex))
104+ )
101105 ).await()
102106
103107 check(response.code in 200 .. 299 ) {
@@ -192,8 +196,8 @@ class FileServerApi @Inject constructor(
192196 ): HttpUrl {
193197 val urlFragment = sequenceOf(
194198 " d" .takeIf { usesDeterministicEncryption },
195- if (! fileServer.url.isOfficial || fileServer.publicKeyHex != DEFAULT_FILE_SERVER .publicKeyHex ) {
196- " p=${fileServer.publicKeyHex } "
199+ if (! fileServer.url.isOfficial || fileServer.ed25519PublicKeyHex != DEFAULT_FILE_SERVER .ed25519PublicKeyHex ) {
200+ " p=${fileServer.ed25519PublicKeyHex } "
197201 } else {
198202 null
199203 }
@@ -254,7 +258,7 @@ class FileServerApi @Inject constructor(
254258 // We'll use the public key we get from the URL
255259 return URLParseResult (
256260 fileId = id,
257- fileServer = FileServer (url = fileServerUrl, publicKeyHex = fileServerPubKeyHex),
261+ fileServer = FileServer (url = fileServerUrl, ed25519PublicKeyHex = fileServerPubKeyHex),
258262 usesDeterministicEncryption = deterministicEncryption
259263 )
260264 }
@@ -275,7 +279,7 @@ class FileServerApi @Inject constructor(
275279 fileId = id,
276280 fileServer = FileServer (
277281 url = fileServerUrl,
278- publicKeyHex = DEFAULT_FILE_SERVER .publicKeyHex
282+ ed25519PublicKeyHex = DEFAULT_FILE_SERVER .ed25519PublicKeyHex
279283 ),
280284 usesDeterministicEncryption = deterministicEncryption
281285 )
0 commit comments