From 4e9850289317c436f98bf6f2c0a4570e5afbc30b Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Fri, 18 Aug 2023 10:56:43 -0300 Subject: [PATCH] add NIP04_ENCRYPT validation --- .../greenart7c3/nostrsigner/ui/MainScreen.kt | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt index 7ac146a8..9978aaa2 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt @@ -104,16 +104,24 @@ fun MainScreen(account: Account, accountStateViewModel: AccountStateViewModel, j } else { json.let { val appName = packageName ?: it.name - if (it.type == SignerType.NIP04_DECRYPT) { - DecryptData( + if (it.type == SignerType.NIP04_DECRYPT || it.type == SignerType.NIP04_ENCRYPT) { + EncryptDecryptData( appName, it.data, { - val sig = CryptoUtils.decrypt( - it.data, - account.keyPair.privKey, - Hex.decode(it.pubKey) - ) + val sig = if (it.type == SignerType.NIP04_DECRYPT) { + CryptoUtils.decrypt( + it.data, + account.keyPair.privKey, + Hex.decode(it.pubKey) + ) + } else { + CryptoUtils.encrypt( + it.data, + account.keyPair.privKey, + Hex.decode(it.pubKey) + ) + } clipboardManager.setText(AnnotatedString(sig)) coroutineScope.launch { @@ -131,7 +139,7 @@ fun MainScreen(account: Account, accountStateViewModel: AccountStateViewModel, j } activity?.finish() } - return@DecryptData + return@EncryptDecryptData }, { context.getAppCompatActivity()?.finish() @@ -226,7 +234,7 @@ fun AcceptRejectButtons( } @Composable -fun DecryptData( +fun EncryptDecryptData( appName: String, data: String, onAccept: () -> Unit, @@ -245,7 +253,7 @@ fun DecryptData( ) { Column(Modifier.padding(6.dp)) { Text( - "wants you to decrypt data", + "wants you to encrypt/decrypt data", fontWeight = FontWeight.Bold )