kopia lustrzana https://github.com/vitorpamplona/amethyst
36 wiersze
849 B
Kotlin
36 wiersze
849 B
Kotlin
package com.vitorpamplona.amethyst.model
|
|
|
|
import com.vitorpamplona.amethyst.ui.note.toDisplayHex
|
|
import fr.acinq.secp256k1.Hex
|
|
import java.util.regex.Pattern
|
|
import nostr.postr.Persona
|
|
import nostr.postr.bechToBytes
|
|
import nostr.postr.toHex
|
|
|
|
/** Makes the distinction between String and Hex **/
|
|
typealias HexKey = String
|
|
|
|
fun ByteArray.toHexKey(): HexKey {
|
|
return toHex()
|
|
}
|
|
|
|
fun HexKey.toByteArray(): ByteArray {
|
|
return Hex.decode(this)
|
|
}
|
|
|
|
fun HexKey.toDisplayHexKey(): String {
|
|
return this.toDisplayHex()
|
|
}
|
|
|
|
fun decodePublicKey(key: String): ByteArray {
|
|
val pattern = Pattern.compile(".+@.+\\.[a-z]+")
|
|
|
|
return if (key.startsWith("nsec")) {
|
|
Persona(privKey = key.bechToBytes()).pubKey
|
|
} else if (key.startsWith("npub")) {
|
|
key.bechToBytes()
|
|
} else { //if (pattern.matcher(key).matches()) {
|
|
//} else {
|
|
Hex.decode(key)
|
|
}
|
|
} |