Skip to content

Commit

Permalink
Fully align SD-JWT-VC metadata (#215)
Browse files Browse the repository at this point in the history
  • Loading branch information
dzarras authored Sep 25, 2024
1 parent f9fa641 commit f3d510b
Showing 1 changed file with 23 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,8 @@ private fun credentialMetaDataJson(d: CredentialConfiguration): JsonObject = bui
}
when (d) {
is JwtVcJsonCredentialConfiguration -> TODO()
is MsoMdocCredentialConfiguration -> d.toTransferObject(false)(this)
is SdJwtVcCredentialConfiguration -> d.toTransferObject(false)(this)
is MsoMdocCredentialConfiguration -> d.toTransferObject()(this)
is SdJwtVcCredentialConfiguration -> d.toTransferObject()(this)
}
}

Expand Down Expand Up @@ -195,48 +195,39 @@ private fun ProofType.toJsonObject(): JsonObject =
}

@OptIn(ExperimentalSerializationApi::class)
internal fun MsoMdocCredentialConfiguration.toTransferObject(isOffer: Boolean): JsonObjectBuilder.() -> Unit = {
internal fun MsoMdocCredentialConfiguration.toTransferObject(): JsonObjectBuilder.() -> Unit = {
put("doctype", docType)
if (!isOffer) {
if (display.isNotEmpty()) {
putJsonArray("display") {
addAll(display.map { it.toTransferObject() })
}
if (display.isNotEmpty()) {
putJsonArray("display") {
addAll(display.map { it.toTransferObject() })
}
if (policy != null) {
putJsonObject("policy") {
put("one_time_use", policy.oneTimeUse)
policy.batchSize?.let { put("batch_size", it) }
}
}
if (policy != null) {
putJsonObject("policy") {
put("one_time_use", policy.oneTimeUse)
policy.batchSize?.let { put("batch_size", it) }
}
}

putJsonObject("claims") {
msoClaims.forEach { (nameSpace, attributes) ->
putJsonObject(nameSpace) {
attributes.forEach { attribute -> attribute.toTransferObject(this) }
}
putJsonObject("claims") {
msoClaims.forEach { (nameSpace, attributes) ->
putJsonObject(nameSpace) {
attributes.forEach { attribute -> attribute.toTransferObject(this) }
}
}
}
}

@OptIn(ExperimentalSerializationApi::class)
internal fun SdJwtVcCredentialConfiguration.toTransferObject(isOffer: Boolean): JsonObjectBuilder.() -> Unit = {
put("vct", type.value)
if (!isOffer) {
if (display.isNotEmpty()) {
putJsonArray("display") {
addAll(display.map { it.toTransferObject() })
}
internal fun SdJwtVcCredentialConfiguration.toTransferObject(): JsonObjectBuilder.() -> Unit = {
if (display.isNotEmpty()) {
putJsonArray("display") {
addAll(display.map { it.toTransferObject() })
}
}
putJsonObject("credential_definition") {
put("type", type.value)
if (!isOffer) {
putJsonObject("claims") {
claims.forEach { attribute -> attribute.toTransferObject(this) }
}
}
put("vct", type.value)
putJsonObject("claims") {
claims.forEach { attribute -> attribute.toTransferObject(this) }
}
}

Expand Down

0 comments on commit f3d510b

Please sign in to comment.