diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 933bf46c6..347299143 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -15,6 +15,7 @@
Obrázek skupiny
Explicitní obsah
Spam
+ Počet spamových událostí z tohoto relé
Zneužívání identity
Nezákonné jednání
Jiný
@@ -93,6 +94,7 @@
Příspěvky
Byty
Chyby
+ Počet chyb připojení v této relaci
Domovský kanál
Kanál soukromých zpráv
Kanál veřejného chatu
@@ -388,6 +390,8 @@
Zapraiser na %1$s. Do cíle zbývá %2$s sats
Číst z Relay
Zapisovat do Relay
+ Množství bajtů, které bylo odesláno na toto relé, včetně filtrů a událostí
+ Množství bajtů, které bylo přijato z tohoto relé, včetně filtrů a událostí
Při pokusu o získání informací z Relay se vyskytla chyba z %1$s
Vlastník
Verze
@@ -427,6 +431,7 @@
Odhlášení vymaže všechny vaše místní informace. Ujistěte se, že máte zálohované své privátní klíče, abyste se vyhnuli ztrátě účtu. Chcete pokračovat?
Sledované značky
Rele
+ Objevování poznámek
Trh
Živě
Komunita
@@ -667,6 +672,14 @@
Zobrazit npub jako QR kód
Neplatná adresa
Amethyst obdržel URI k otevření, ale tento URI byl neplatný: %1$s
+ Relé DM Schránky
+ Relé: %1$s
+ Používání běžných relé
+ Nastavte svá relé soukromé schránky
+ Toto nastavení umožňuje všem vědět, která relé použít při posílání zpráv vám. Bez nich můžete některé zprávy zmeškat.
+ Dobré možnosti jsou:\n - inbox.nostr.wine (placené)\n - you.nostr1.com (osobní relé - placené)
+ Vložte 1-3 relé, která budou sloužit jako vaše soukromá schránka. Relé DM schránky by měla přijímat jakékoli zprávy od kohokoli, ale pouze vám umožnit jejich stahování.
+ Nastavit nyní
Zapni vývojáře!
Váš příspěvek nám pomáhá dělat rozdíl. Každý sat se počítá!
Přispět nyní
@@ -704,4 +717,9 @@
Není možné poslat zap konceptu
Koncept
Ze zprávy
+ Hledání aplikace
+ Požadavek na práci, čeká se na odpověď
+ Žádost o práci od DVM
+ Žádost o platbu odeslána, čeká se na potvrzení z vaší peněženky
+ Čekání na potvrzení platby DVM nebo na zaslání výsledků
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 56522625a..8410138e8 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -15,6 +15,7 @@
Gruppenbild
Anstößiger Inhalt
Spam
+ Anzahl der Spam-Ereignisse von diesem Relais
Vortäuschung
Illegales Verhalten
Andere
@@ -93,6 +94,7 @@
Beiträge
Bytes
Fehler
+ Anzahl der Verbindungsfehler in dieser Sitzung
Startseite
Private Nachrichten
Öffentlicher Chat
@@ -393,6 +395,8 @@ anz der Bedingungen ist erforderlich
Zapraiser bei %1$s. %2$s Sats bis zum Ziel
Von Relay lesen
In Relay schreiben
+ Die Menge in Bytes, die an dieses Relais gesendet wurde, einschließlich Filter und Ereignisse
+ Die Menge in Bytes, die von diesem Relais empfangen wurde, einschließlich Filter und Ereignisse
Ein Fehler ist beim Abrufen von Relay-Informationen von %1$s aufgetreten
Inhaber
Version
@@ -432,6 +436,7 @@ anz der Bedingungen ist erforderlich
Das Abmelden löscht alle Ihre lokalen Informationen. Stellen Sie sicher, dass Sie Ihre privaten Schlüssel gesichert haben, um einen Kontoverlust zu vermeiden. Möchten Sie fortfahren?
Gefolgte Tags
Relais
+ Notizen Entdeckung
Marktplatz
Live
Gemeinschaft
@@ -672,6 +677,14 @@ anz der Bedingungen ist erforderlich
Npub als QR-Code anzeigen
Ungültige Adresse
Amethyst hat eine URI zum Öffnen erhalten, aber diese URI war ungültig: %1$s
+ DM Posteingangs-Relais
+ Relais: %1$s
+ Verwendung regulärer Relais
+ Richten Sie Ihre privaten Posteingangs-Relais ein
+ Diese Einstellung lässt alle wissen, welche Relais verwendet werden sollen, wenn sie Nachrichten an Sie senden. Ohne diese könnten Sie einige Nachrichten verpassen.
+ Gute Optionen sind:\n - inbox.nostr.wine (bezahlt)\n - you.nostr1.com (persönliche Relais - bezahlt)
+ Fügen Sie 1-3 Relais ein, die als Ihr privater Posteingang dienen sollen. DM Posteingangs-Relais sollten Nachrichten von jedem akzeptieren, aber nur Ihnen erlauben, sie herunterzuladen.
+ Jetzt einrichten
Zap die Entwickler!
Deine Spende hilft uns, einen Unterschied zu machen. Jeder Sat zählt!
Jetzt spenden
@@ -709,4 +722,9 @@ anz der Bedingungen ist erforderlich
Es ist nicht möglich, zap Zahlung an einen Entwurf senden
Entwurf
Aus Nachricht laden
+ Suche nach Anwendung
+ Job angefordert, wartet auf Antwort
+ Anforderung eines Jobs von DVM
+ Zahlungsanforderung gesendet, wartet auf Bestätigung Ihrer Geldbörse
+ Warten auf Bestätigung der Zahlung durch DVM oder auf die Ergebnisse
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index ab0a4428c..9f36e03f0 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -15,6 +15,7 @@
Imagem do grupo
Conteúdo explícito
Spam
+ O número de eventos de spam vindo deste relé
Representação
Comportamento ilegal
Outro
@@ -93,6 +94,7 @@
Postagens
Bytes
Erros
+ O número de erros de conexão nesta sessão
Feed principal
Feed de mensagens privadas
Feed Chat Público
@@ -388,6 +390,8 @@
Arrecadação de Zaps em %1$s. %2$s sats para meta
Ler do Relay
Enviar para o Relay
+ A quantidade em bytes que foi enviada para este relé, incluindo filtros e eventos
+ A quantidade em bytes que foi recebida deste relé, incluindo filtros e eventos
Ocorreu um erro ao tentar obter informações do relay de %1$s
Proprietário
Versão
@@ -427,6 +431,7 @@
Sair exclui todas as suas informações locais. Certifique-se de fazer backup de suas chaves privadas para evitar a perda de sua conta. Você quer continuar?
Tags Seguidas
Relays
+ Descoberta de Notas
Mercado
Ao vivo
Comunidade
@@ -667,6 +672,14 @@
Mostrar npub como um código QR
Endereço inválido
O Amethyst recebeu um URI para abrir, mas esse URI era inválido: %1$s
+ Relés da Caixa de Entrada de DM
+ Relés: %1$s
+ Usando Relés Regulares
+ Configurar seus relés de Caixa de Entrada Privada
+ Esta configuração permite que todos saibam quais relés usar ao enviar mensagens para você. Sem eles, você pode perder algumas mensagens.
+ Boas opções são:\n - inbox.nostr.wine (pago)\n - you.nostr1.com (relés pessoais - pago)
+ Insira entre 1-3 relés para servir como sua caixa de entrada privada. Relés de Caixa de Entrada de DM devem aceitar qualquer mensagem de qualquer pessoa, mas permitir apenas você a baixá-las.
+ Configurar agora
Zap os desenvolvedores!
Sua doação nos ajuda a fazer a diferença. Cada sat conta!
Doar agora
@@ -704,4 +717,9 @@
Não é possível fazer um zap em uma nota em rascunho
Nota de rascunho
Carregar do texto
+ Procurando Aplicativo
+ Trabalho Solicitado, aguardando resposta
+ Solicitando Trabalho ao DVM
+ Pedido de pagamento enviado, aguardando confirmação da sua carteira
+ Aguardando o DVM confirmar o pagamento ou enviar resultados
diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml
index ad1fd9ff4..b5a2dbe42 100644
--- a/app/src/main/res/values-sv-rSE/strings.xml
+++ b/app/src/main/res/values-sv-rSE/strings.xml
@@ -15,6 +15,7 @@
Grupp bild
Explicit Innehåll
Spam
+ Antal skräpposthändelser från detta relä
Imitation
Olagligt beteende
Annat
@@ -93,6 +94,7 @@
Inlägg
Bytes
Fel
+ Antal anslutningsfel under denna session
Hem Flöde
Privata Meddelande Flöde
Publik Chat Flöde
@@ -387,6 +389,8 @@
Zapraiser på %1$s. %2$s sats kvar till målet
Läs från Relay
Skriv till Relay
+ Mängden data i byte som skickades till detta relä, inklusive filter och händelser
+ Mängden data i byte som mottogs från detta relä, inklusive filter och händelser
Ett fel inträffade vid försök att hämta information från Relay %1$s
Ägare
Version
@@ -426,6 +430,7 @@
Att logga ut raderar all din lokala information. Se till att ha dina privata nycklar säkerhetskopierade för att undvika att förlora ditt konto. Vill du fortsätta?
Följda taggar
Reläer
+ Upptäckt av anteckningar
Marknadsplats
Live
Gemenskap
@@ -666,6 +671,14 @@
Visa npub som en QR-kod
Ogiltig adress
Amethyst fick en URI att öppna men den URI var ogiltig: %1$s
+ DM Inkorg Reläer
+ Reläer: %1$s
+ Använder vanliga reläer
+ Ställ in dina privata inkorgsreläer
+ Denna inställning låter alla veta vilka reläer som ska användas när de skickar meddelanden till dig. Utan dem kan du missa vissa meddelanden.
+ Bra alternativ är:\n - inbox.nostr.wine (betald)\n - you.nostr1.com (personliga reläer - betald)
+ Sätt in mellan 1-3 reläer för att fungera som din privata inkorg. DM Inkorg reläer bör acceptera alla meddelanden från vem som helst, men endast tillåta dig att ladda ner dem.
+ Ställ in nu
Zappa utvecklarna!
Din donation hjälper oss att göra skillnad. Varje sat räknas!
Donera nu
@@ -703,4 +716,9 @@
Det går inte att zappa ett utkast
Utkast
Från meddelande
+ Letar efter applikation
+ Jobb begärt, väntar på svar
+ Begär jobb från DVM
+ Betalningsbegäran skickad, väntar på bekräftelse från din plånbok
+ Väntar på att DVM ska bekräfta betalningen eller skicka resultaten
diff --git a/quartz/src/androidTest/java/com/vitorpamplona/quartz/crypto/CryptoUtilsTest.kt b/quartz/src/androidTest/java/com/vitorpamplona/quartz/crypto/CryptoUtilsTest.kt
index b109a2d8d..ad5bcff7b 100644
--- a/quartz/src/androidTest/java/com/vitorpamplona/quartz/crypto/CryptoUtilsTest.kt
+++ b/quartz/src/androidTest/java/com/vitorpamplona/quartz/crypto/CryptoUtilsTest.kt
@@ -120,4 +120,20 @@ class CryptoUtilsTest {
assertEquals(msg, decrypted)
}
+
+ @Test
+ fun signString() {
+ val random = "319cc5596fdd6cd767e5a59d976e8e059c61306af90dff1e6ee1067b3a1fdbc0".hexToByteArray()
+ val message = "8e58c8251bb406b6ded69e9eb14f55282a9a53bdab16fc49a3218c2ad3abc887".hexToByteArray()
+ val keyPair = KeyPair("a5ab474552c8f9c46c2eda5a0b68f27430ad81f96cb405e0cb4e34bf0c6494a2".hexToByteArray())
+
+ val signedMessage = CryptoUtils.sign(message, keyPair.privKey!!, random).toHexKey()
+ val expectedValue = "0f9be7e01ba53d5ee6874b9180c7956269fda7a5be424634c3d17b5cfcea6da001be89183876415ba08b7dafa6cff4555e393dc228fb8769b384344e9a27b77c"
+ assertEquals(expectedValue, signedMessage)
+
+ val message2 = "Hello"
+ val signedMessage2 = CryptoUtils.signString(message2, keyPair.privKey!!, random).toHexKey()
+ val expectedValue2 = "7ec8194a585bfb513564113b6b7bfeaafa0254c99d24eaf92280657c2291bab908b1b7bc553c83276a0254aef5041bbe6a50e93381edc4de3d859efa1c3a5a1e"
+ assertEquals(expectedValue2, signedMessage2)
+ }
}
diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/crypto/CryptoUtils.kt b/quartz/src/main/java/com/vitorpamplona/quartz/crypto/CryptoUtils.kt
index 948684a0b..64d0efd82 100644
--- a/quartz/src/main/java/com/vitorpamplona/quartz/crypto/CryptoUtils.kt
+++ b/quartz/src/main/java/com/vitorpamplona/quartz/crypto/CryptoUtils.kt
@@ -64,10 +64,19 @@ object CryptoUtils {
return secp256k1.secKeyVerify(il)
}
+ fun signString(
+ message: String,
+ privKey: ByteArray,
+ auxrand32: ByteArray = random(32),
+ ): ByteArray {
+ return sign(sha256(message.toByteArray()), privKey, auxrand32)
+ }
+
fun sign(
data: ByteArray,
privKey: ByteArray,
- ): ByteArray = secp256k1.signSchnorr(data, privKey, null)
+ auxrand32: ByteArray? = null,
+ ): ByteArray = secp256k1.signSchnorr(data, privKey, auxrand32)
fun verifySignature(
signature: ByteArray,