Skip to content

Commit 26cfacb

Browse files
committed
[PNV] Allow filtering on aggregator iss values
1 parent 85f9ab6 commit 26cfacb

File tree

3 files changed

+206
-122
lines changed

3 files changed

+206
-122
lines changed

app/src/main/assets/pnv.wasm

81 Bytes
Binary file not shown.

app/src/main/java/com/credman/cmwallet/pnv/PnvTokenRegistry.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ data class PnvTokenRegistry(
7070
val iss: String,
7171
val icon: String? = null,
7272
val phoneNumberAttributeDisplayName: String, // Should be localized
73+
val supportedAggregatorIssNames: Set<String>?, // If null, allow all and do not perform filtering
7374
) {
7475
/** Converts this TS43 entry to the more generic SD-JWT registry item(s). */
7576
private fun toSdJwtRegistryItems(): SdJwtRegistryItem {
@@ -101,6 +102,7 @@ data class PnvTokenRegistry(
101102
internal const val VALUE = "value"
102103
internal const val DISPLAY = "display"
103104
internal const val SHARED_ATTRIBUTE_DISPLAY_NAME = "shared_attribute_display_name"
105+
internal const val ISS_ALLOWLIST = "iss_allowlist"
104106

105107
val TEST_PNV_1_GET_PHONE_NUMBER = PnvTokenRegistry(
106108
tokenId = "pnv_1",
@@ -115,6 +117,7 @@ data class PnvTokenRegistry(
115117
iss = "https://example.terrific-telecom.dev",
116118
icon = "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAWCAYAAADwza0nAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACBSURBVHgB7ZTBDUVQEEXvff8VoITfC0YZatABHWiH6IUOaICHBCuReXbEWd1kcmZmMRmGIinhSpABFBDoJpqccSKtA/7wY7C71FQ1NUaUyKIg4Ba8MbiJ3YPnqvcnfuI7xAfdqr0qXjU9FTXTGUnca//NIYGdoflla1BbDsPIqZgBHcEomi+uUHMAAAAASUVORK5CYII=",
117119
phoneNumberAttributeDisplayName = "Phone number",
120+
supportedAggregatorIssNames = null
118121
)
119122
val TEST_PNV_1_VERIFY_PHONE_NUMBER = TEST_PNV_1_GET_PHONE_NUMBER.copy(
120123
vct = VCT_VERIFY_PHONE_NUMBER,
@@ -132,6 +135,7 @@ data class PnvTokenRegistry(
132135
iss = "https://example.timely-telecom.dev",
133136
icon = "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAWCAYAAADwza0nAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACBSURBVHgB7ZTBDUVQEEXvff8VoITfC0YZatABHWiH6IUOaICHBCuReXbEWd1kcmZmMRmGIinhSpABFBDoJpqccSKtA/7wY7C71FQ1NUaUyKIg4Ba8MbiJ3YPnqvcnfuI7xAfdqr0qXjU9FTXTGUnca//NIYGdoflla1BbDsPIqZgBHcEomi+uUHMAAAAASUVORK5CYII=",
134137
phoneNumberAttributeDisplayName = "Phone number",
138+
supportedAggregatorIssNames = null
135139
)
136140

137141
fun buildRegistryDatabase(items: List<PnvTokenRegistry>): ByteArray {
@@ -164,6 +168,13 @@ data class PnvTokenRegistry(
164168
val sdJwtRegistryItem = item.toSdJwtRegistryItems()
165169
val credJson = JSONObject()
166170
credJson.put(SHARED_ATTRIBUTE_DISPLAY_NAME, item.phoneNumberAttributeDisplayName)
171+
if (item.supportedAggregatorIssNames != null) {
172+
val issAllowlist = JSONObject()
173+
for (issName in item.supportedAggregatorIssNames) {
174+
issAllowlist.put(issName, JSONObject())
175+
}
176+
credJson.put(ISS_ALLOWLIST, issAllowlist)
177+
}
167178
credJson.put(ID, sdJwtRegistryItem.id)
168179
credJson.put(TITLE, sdJwtRegistryItem.displayData.title)
169180
credJson.putOpt(SUBTITLE, sdJwtRegistryItem.displayData.subtitle)

0 commit comments

Comments
 (0)