Skip to content

Commit 684f97e

Browse files
committed
prevent external files from calling sha256 hash method
1 parent e014902 commit 684f97e

File tree

6 files changed

+8
-7
lines changed

6 files changed

+8
-7
lines changed

sdk/src/androidTest/java/network/xyo/client/boundwitness/XyoBoundWitnessTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ class XyoBoundWitnessTest {
7878
val bw = XyoBoundWitnessBuilder(appContext).signer(Account.random()).payloads(listOf(
7979
TestPayload1()
8080
)).build()
81-
assert(bw.rootHash() == XyoSerializable.sha256String(bw))
8281
assert(bw.dataHash() == bw.getBodyJson().dataHash())
8382
assert(bw.meta.client == "android")
8483
assert(bw.meta.signatures?.size == 1)

sdk/src/androidTest/java/network/xyo/client/witness/LocationWitnessTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class LocationWitnessTest {
6363
val panel = XyoPanel(appContext, Account.random(), arrayListOf(Pair("${TestConstants.nodeUrlBeta}/Archivist", null)), listOf(XyoLocationWitness()))
6464
val result = panel.reportAsyncQuery()
6565
result.payloads?.forEach{ payload ->
66-
val hash = XyoSerializable.sha256String(payload)
66+
val hash = payload.dataHash()
6767
assert(result.bw.payload_hashes.contains(hash))
6868
}
6969
}

sdk/src/main/java/network/xyo/client/boundwitness/QueryBoundWitnessBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class QueryBoundWitnessBuilder(context: Context) : XyoBoundWitnessBuilder(contex
1313
private lateinit var queryHash: String
1414

1515
fun query(query: XyoPayload): QueryBoundWitnessBuilder {
16-
this.queryHash = XyoSerializable.sha256String(query)
16+
this.queryHash = query.dataHash()
1717
this.payload(query.schema, query)
1818
return this
1919
}

sdk/src/main/java/network/xyo/client/boundwitness/XyoBoundWitnessBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ open class XyoBoundWitnessBuilder(private val context: Context) {
9191
// Note: Once fields are hashed, do not update class properties that are expected
9292
// in the serialized version of the bw because they will invalidate the hash
9393
val hashable = hashableFields()
94-
val hash = XyoSerializable.sha256String(hashable)
94+
val hash = hashable.dataHash()
9595
bw.meta.signatures = this.sign(hash)
9696
}
9797

sdk/src/main/java/network/xyo/client/boundwitness/XyoBoundWitnessJson.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package network.xyo.client.boundwitness
22

33
import com.squareup.moshi.Json
44
import com.squareup.moshi.JsonClass
5+
import network.xyo.client.lib.XyoSerializable
56

67
@JsonClass(generateAdapter = true)
7-
class XyoBoundWitnessMeta: XyoBoundWitnessMetaInterface {
8+
class XyoBoundWitnessMeta: XyoBoundWitnessMetaInterface, XyoSerializable() {
89
override var signatures: List<String>? = null
910
override var client: String? = null
1011
}

sdk/src/main/java/network/xyo/client/lib/XyoSerializable.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,13 @@ abstract class XyoSerializable: Serializable {
8787
return md.digest()
8888
}
8989

90-
fun <T: XyoSerializable>sha256(obj: T): ByteArray {
90+
protected fun <T: XyoSerializable>sha256(obj: T): ByteArray {
9191
val json = toJson(obj, true)
9292
return sha256(json)
9393
}
9494

95-
fun <T: XyoSerializable>sha256String(obj: T): String {
95+
@JvmStatic
96+
protected fun <T: XyoSerializable>sha256String(obj: T): String {
9697
val shaBytes = sha256(obj)
9798
return bytesToHex(shaBytes)
9899
}

0 commit comments

Comments
 (0)