Skip to content

Commit 763366b

Browse files
committed
feat(app): signature support output hex signed data
1 parent 6c4ba0c commit 763366b

File tree

5 files changed

+28
-9
lines changed

5 files changed

+28
-9
lines changed

app/src/main/kotlin/me/leon/controller/SignatureController.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package me.leon.controller
22

3-
import me.leon.encode.base.base64
4-
import me.leon.encode.base.base64Decode
53
import me.leon.ext.*
64
import me.leon.ext.crypto.sign
75
import me.leon.ext.crypto.verify
@@ -15,14 +13,15 @@ class SignatureController : Controller() {
1513
pri: String,
1614
msg: String,
1715
inputEncode: String,
16+
outEncode: String,
1817
isSingleLine: Boolean
1918
) =
2019
catch({ it }) {
2120
if (isSingleLine)
2221
msg.lineAction2String {
23-
it.decodeToByteArray(inputEncode).sign(kpAlg, sigAlg, pri).base64()
22+
it.decodeToByteArray(inputEncode).sign(kpAlg, sigAlg, pri).encodeTo(outEncode)
2423
}
25-
else msg.decodeToByteArray(inputEncode).sign(kpAlg, sigAlg, pri).base64()
24+
else msg.decodeToByteArray(inputEncode).sign(kpAlg, sigAlg, pri).encodeTo(outEncode)
2625
}
2726

2827
fun verify(
@@ -31,19 +30,25 @@ class SignatureController : Controller() {
3130
pub: String,
3231
msg: String,
3332
inputEncode: String,
33+
outEncode: String,
3434
signed: String,
3535
isSingleLine: Boolean
3636
) =
3737
catch({ it }) {
3838
if (isSingleLine)
3939
msg.lineActionIndex { s, i ->
4040
s.decodeToByteArray(inputEncode)
41-
.verify(kpAlg, sigAlg, pub, signed.lineSplit()[i].base64Decode())
41+
.verify(
42+
kpAlg,
43+
sigAlg,
44+
pub,
45+
signed.lineSplit()[i].decodeToByteArray(outEncode)
46+
)
4247
.toString()
4348
}
4449
else
4550
msg.decodeToByteArray(inputEncode)
46-
.verify(kpAlg, sigAlg, pub, signed.base64Decode())
51+
.verify(kpAlg, sigAlg, pub, signed.decodeToByteArray(outEncode))
4752
.toString()
4853
}
4954
}

app/src/main/kotlin/me/leon/view/SignatureView.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,9 @@ class SignatureView : Fragment(messages["signVerify"]) {
151151
"${messages["outputLength"]}: ${signText.length} " +
152152
"cost: $timeConsumption ms"
153153
private var inputEncode = "raw"
154+
private var outputEncode = "base64"
154155
private lateinit var tgInput: ToggleGroup
156+
private lateinit var tgOutput: ToggleGroup
155157
private val centerNode = vbox {
156158
addClass(Styles.group)
157159
hbox {
@@ -233,7 +235,17 @@ class SignatureView : Fragment(messages["signVerify"]) {
233235
}
234236
}
235237
hbox {
238+
addClass(Styles.left)
236239
label(messages["sig"])
240+
tgOutput =
241+
togglegroup {
242+
radiobutton("base64") { isSelected = true }
243+
radiobutton("hex")
244+
selectedToggleProperty().addListener { _, _, newValue ->
245+
outputEncode = newValue.cast<RadioButton>().text
246+
}
247+
}
248+
237249
button(graphic = imageview("/img/copy.png")) { action { signText.copy() } }
238250
}
239251

@@ -258,6 +270,7 @@ class SignatureView : Fragment(messages["signVerify"]) {
258270
key,
259271
msg,
260272
inputEncode,
273+
outputEncode,
261274
isSingleLine.get()
262275
)
263276
} ui
@@ -277,6 +290,7 @@ class SignatureView : Fragment(messages["signVerify"]) {
277290
key,
278291
msg,
279292
inputEncode,
293+
outputEncode,
280294
signText,
281295
isSingleLine.get()
282296
)

app/src/main/resources/Messages.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ priSig=Private Key Sign
3030
priEncrypt=Private Key Encrypt
3131
genKeypair=Generate Keypair
3232
pubVerify=Public Key Verify
33-
sig=Signature(base64):
33+
sig=Signature:
3434
outputLength=Output Length
3535
inputLength=Input Length
3636
outputEncoding=Output Encoding:

app/src/main/resources/Messages_en.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ priSig=Private Key Sign
3030
priEncrypt=Private Key Encrypt
3131
genKeypair=Generate Keypair
3232
pubVerify=Public Key Verify
33-
sig=Signature(base64):
33+
sig=Signature:
3434
outputLength=Output Length
3535
inputLength=Input Length
3636
outputEncoding=Output Encoding:

app/src/main/resources/Messages_zh_CN.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ priSig=\u79c1\u94a5\u7b7e\u540d
3030
priEncrypt=\u79c1\u94a5\u52a0\u5bc6
3131
genKeypair=\u751f\u6210\u516c\u79c1\u94a5
3232
pubVerify=\u516c\u94a5\u9a8c\u7b7e
33-
sig=\u7b7e\u540d(base64):
33+
sig=\u7b7e\u540d:
3434
outputLength=\u8f93\u51fa\u957f\u5ea6
3535
inputLength=\u8f93\u5165\u957f\u5ea6
3636
outputEncoding=\u8f93\u51fa\u7f16\u7801:

0 commit comments

Comments
 (0)