@@ -70,6 +70,7 @@ data class PnvTokenRegistry(
70
70
val iss : String ,
71
71
val icon : String? = null ,
72
72
val phoneNumberAttributeDisplayName : String , // Should be localized
73
+ val supportedAggregatorIssNames : Set <String >? , // If null, allow all and do not perform filtering
73
74
) {
74
75
/* * Converts this TS43 entry to the more generic SD-JWT registry item(s). */
75
76
private fun toSdJwtRegistryItems (): SdJwtRegistryItem {
@@ -101,6 +102,7 @@ data class PnvTokenRegistry(
101
102
internal const val VALUE = " value"
102
103
internal const val DISPLAY = " display"
103
104
internal const val SHARED_ATTRIBUTE_DISPLAY_NAME = " shared_attribute_display_name"
105
+ internal const val ISS_ALLOWLIST = " iss_allowlist"
104
106
105
107
val TEST_PNV_1_GET_PHONE_NUMBER = PnvTokenRegistry (
106
108
tokenId = " pnv_1" ,
@@ -115,6 +117,7 @@ data class PnvTokenRegistry(
115
117
iss = " https://example.terrific-telecom.dev" ,
116
118
icon = " iVBORw0KGgoAAAANSUhEUgAAAA4AAAAWCAYAAADwza0nAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACBSURBVHgB7ZTBDUVQEEXvff8VoITfC0YZatABHWiH6IUOaICHBCuReXbEWd1kcmZmMRmGIinhSpABFBDoJpqccSKtA/7wY7C71FQ1NUaUyKIg4Ba8MbiJ3YPnqvcnfuI7xAfdqr0qXjU9FTXTGUnca//NIYGdoflla1BbDsPIqZgBHcEomi+uUHMAAAAASUVORK5CYII=" ,
117
119
phoneNumberAttributeDisplayName = " Phone number" ,
120
+ supportedAggregatorIssNames = null
118
121
)
119
122
val TEST_PNV_1_VERIFY_PHONE_NUMBER = TEST_PNV_1_GET_PHONE_NUMBER .copy(
120
123
vct = VCT_VERIFY_PHONE_NUMBER ,
@@ -132,6 +135,7 @@ data class PnvTokenRegistry(
132
135
iss = " https://example.timely-telecom.dev" ,
133
136
icon = " iVBORw0KGgoAAAANSUhEUgAAAA4AAAAWCAYAAADwza0nAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACBSURBVHgB7ZTBDUVQEEXvff8VoITfC0YZatABHWiH6IUOaICHBCuReXbEWd1kcmZmMRmGIinhSpABFBDoJpqccSKtA/7wY7C71FQ1NUaUyKIg4Ba8MbiJ3YPnqvcnfuI7xAfdqr0qXjU9FTXTGUnca//NIYGdoflla1BbDsPIqZgBHcEomi+uUHMAAAAASUVORK5CYII=" ,
134
137
phoneNumberAttributeDisplayName = " Phone number" ,
138
+ supportedAggregatorIssNames = null
135
139
)
136
140
137
141
fun buildRegistryDatabase (items : List <PnvTokenRegistry >): ByteArray {
@@ -164,6 +168,13 @@ data class PnvTokenRegistry(
164
168
val sdJwtRegistryItem = item.toSdJwtRegistryItems()
165
169
val credJson = JSONObject ()
166
170
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
+ }
167
178
credJson.put(ID , sdJwtRegistryItem.id)
168
179
credJson.put(TITLE , sdJwtRegistryItem.displayData.title)
169
180
credJson.putOpt(SUBTITLE , sdJwtRegistryItem.displayData.subtitle)
0 commit comments