mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
fix: UUID string format #1421
This commit is contained in:
@@ -24,6 +24,10 @@ import java.util.Locale
|
||||
import java.util.UUID
|
||||
|
||||
object UUIDUtils {
|
||||
|
||||
/**
|
||||
* Specific UUID string format for KeePass database
|
||||
*/
|
||||
fun UUID.asHexString(): String? {
|
||||
try {
|
||||
val buf = uuidTo16Bytes(this)
|
||||
@@ -52,6 +56,10 @@ object UUIDUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* From a specific UUID KeePass database string format,
|
||||
* Note : For a standard UUID string format, use UUID.fromString()
|
||||
*/
|
||||
fun String.asUUID(): UUID? {
|
||||
if (this.length != 32) return null
|
||||
|
||||
@@ -98,10 +106,6 @@ object UUIDUtils {
|
||||
}.array()
|
||||
}
|
||||
|
||||
fun String.asUUIDBytes(): ByteArray {
|
||||
return this.asUUID()?.asBytes() ?: ByteArray(16)
|
||||
}
|
||||
|
||||
// Use short to represent unsigned byte
|
||||
private fun byteToChar(bt: Char): Char {
|
||||
return if (bt.code >= 10) {
|
||||
|
||||
@@ -27,13 +27,19 @@ import java.util.UUID
|
||||
|
||||
class UUIDTest: TestCase() {
|
||||
|
||||
fun testUUIDString() {
|
||||
fun testUUIDHexString() {
|
||||
val randomUUID = UUID.randomUUID()
|
||||
val hexStringUUID = randomUUID.asHexString()
|
||||
val retrievedUUID = hexStringUUID?.asUUID()
|
||||
assertEquals(randomUUID, retrievedUUID)
|
||||
}
|
||||
|
||||
fun testUUIDString() {
|
||||
val staticUUID = "4be0643f-1d98-573b-97cd-ca98a65347dd"
|
||||
val stringUUID = UUID.fromString(staticUUID).asBytes().asUUID().toString()
|
||||
assertEquals(staticUUID, stringUUID)
|
||||
}
|
||||
|
||||
fun testUUIDBytes() {
|
||||
val randomUUID = UUID.randomUUID()
|
||||
val byteArrayUUID = randomUUID.asBytes()
|
||||
|
||||
Reference in New Issue
Block a user