diff --git a/CHANGELOG.md b/CHANGELOG.md index 95dcadeb9..0517d32a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ Changes since Multipaz 0.93.0 include: - High-level composable for simpler QR mdoc presentment. - Support for creating AttestKey in Android Keystore Secure Area. - Native support for W3 Digital Credentials API on Android. -- New `org.multipaz.models.verification` package with utility functions to +- New `org.multipaz.verification` package with utility functions to make it easier to create W3C DC requests and validate W3C DC Responses. - Support for EU Age Verification ISO mdoc document type (`eu.europa.ec.av.1`) with support for this in both the issuer, testapp, and verifier. diff --git a/multipaz-compose/build.gradle.kts b/multipaz-compose/build.gradle.kts index 7b1de54f8..eb044fd0d 100644 --- a/multipaz-compose/build.gradle.kts +++ b/multipaz-compose/build.gradle.kts @@ -75,7 +75,6 @@ kotlin { api(libs.jetbrains.navigation.runtime) implementation(project(":multipaz")) - implementation(project(":multipaz-models")) implementation(libs.kotlinx.datetime) implementation(libs.kotlinx.serialization.json) implementation(libs.kotlinx.io.core) diff --git a/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/digitalcredentials/CredentialManagerPresentmentActivity.kt b/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/digitalcredentials/CredentialManagerPresentmentActivity.kt index d4bdc8bea..9cea43a71 100644 --- a/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/digitalcredentials/CredentialManagerPresentmentActivity.kt +++ b/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/digitalcredentials/CredentialManagerPresentmentActivity.kt @@ -33,11 +33,11 @@ import org.multipaz.compose.presentment.Presentment import org.multipaz.compose.prompt.PromptDialogs import org.multipaz.context.initializeApplication import org.multipaz.documenttype.DocumentTypeRepository -import org.multipaz.models.digitalcredentials.getAppOrigin -import org.multipaz.models.digitalcredentials.lookupForCredmanId -import org.multipaz.models.presentment.DigitalCredentialsPresentmentMechanism -import org.multipaz.models.presentment.PresentmentModel -import org.multipaz.models.presentment.PresentmentSource +import org.multipaz.digitalcredentials.getAppOrigin +import org.multipaz.digitalcredentials.lookupForCredmanId +import org.multipaz.presentment.model.DigitalCredentialsPresentmentMechanism +import org.multipaz.presentment.model.PresentmentModel +import org.multipaz.presentment.model.PresentmentSource import org.multipaz.prompt.PromptModel import org.multipaz.util.Logger import java.lang.IllegalStateException diff --git a/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/mdoc/MdocNdefService.kt b/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/mdoc/MdocNdefService.kt index 2d897cb95..51e0141ed 100644 --- a/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/mdoc/MdocNdefService.kt +++ b/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/mdoc/MdocNdefService.kt @@ -29,9 +29,9 @@ import org.multipaz.mdoc.transport.MdocTransportFactory import org.multipaz.mdoc.transport.MdocTransportOptions import org.multipaz.mdoc.transport.advertise import org.multipaz.mdoc.transport.waitForConnection -import org.multipaz.models.presentment.MdocPresentmentMechanism -import org.multipaz.models.presentment.PresentmentModel -import org.multipaz.models.presentment.PresentmentTimeout +import org.multipaz.presentment.model.MdocPresentmentMechanism +import org.multipaz.presentment.model.PresentmentModel +import org.multipaz.presentment.model.PresentmentTimeout import org.multipaz.nfc.CommandApdu import org.multipaz.nfc.ResponseApdu import org.multipaz.prompt.PromptModel diff --git a/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/mdoc/MdocNfcPresentmentActivity.kt b/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/mdoc/MdocNfcPresentmentActivity.kt index a66cf2744..c084cf946 100644 --- a/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/mdoc/MdocNfcPresentmentActivity.kt +++ b/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/mdoc/MdocNfcPresentmentActivity.kt @@ -20,7 +20,7 @@ import org.multipaz.compose.presentment.Presentment import org.multipaz.compose.prompt.PromptDialogs import org.multipaz.context.initializeApplication import org.multipaz.documenttype.DocumentTypeRepository -import org.multipaz.models.presentment.PresentmentSource +import org.multipaz.presentment.model.PresentmentSource import org.multipaz.prompt.PromptModel /** diff --git a/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/presentment/UriSchemePresentmentActivity.kt b/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/presentment/UriSchemePresentmentActivity.kt index a666695cf..b43bfaeb6 100644 --- a/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/presentment/UriSchemePresentmentActivity.kt +++ b/multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/presentment/UriSchemePresentmentActivity.kt @@ -18,9 +18,9 @@ import org.jetbrains.compose.resources.painterResource import org.multipaz.compose.prompt.PromptDialogs import org.multipaz.context.initializeApplication import org.multipaz.documenttype.DocumentTypeRepository -import org.multipaz.models.presentment.PresentmentModel -import org.multipaz.models.presentment.PresentmentSource -import org.multipaz.models.presentment.UriSchemePresentmentMechanism +import org.multipaz.presentment.model.PresentmentModel +import org.multipaz.presentment.model.PresentmentSource +import org.multipaz.presentment.model.UriSchemePresentmentMechanism import org.multipaz.prompt.PromptModel import org.multipaz.util.Logger import java.net.URL diff --git a/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/presentment/MdocProximityQrPresentment.kt b/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/presentment/MdocProximityQrPresentment.kt index a63b6d55b..d6f539b33 100644 --- a/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/presentment/MdocProximityQrPresentment.kt +++ b/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/presentment/MdocProximityQrPresentment.kt @@ -21,12 +21,11 @@ import org.multipaz.documenttype.DocumentTypeRepository import org.multipaz.mdoc.engagement.buildDeviceEngagement import org.multipaz.mdoc.role.MdocRole import org.multipaz.mdoc.transport.MdocTransportFactory -import org.multipaz.mdoc.transport.MdocTransportOptions import org.multipaz.mdoc.transport.advertise import org.multipaz.mdoc.transport.waitForConnection -import org.multipaz.models.presentment.MdocPresentmentMechanism -import org.multipaz.models.presentment.PresentmentModel -import org.multipaz.models.presentment.PresentmentSource +import org.multipaz.presentment.model.MdocPresentmentMechanism +import org.multipaz.presentment.model.PresentmentModel +import org.multipaz.presentment.model.PresentmentSource import org.multipaz.prompt.PromptModel import org.multipaz.util.Logger import org.multipaz.util.toBase64Url diff --git a/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/presentment/Presentment.kt b/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/presentment/Presentment.kt index ac3ba42f1..3edb5f660 100644 --- a/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/presentment/Presentment.kt +++ b/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/presentment/Presentment.kt @@ -30,10 +30,10 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import coil3.ImageLoader -import org.multipaz.models.presentment.PresentmentCanceled -import org.multipaz.models.presentment.PresentmentModel -import org.multipaz.models.presentment.PresentmentSource -import org.multipaz.models.presentment.PresentmentTimeout +import org.multipaz.presentment.model.PresentmentCanceled +import org.multipaz.presentment.model.PresentmentModel +import org.multipaz.presentment.model.PresentmentSource +import org.multipaz.presentment.model.PresentmentTimeout import org.multipaz.documenttype.DocumentTypeRepository import org.multipaz.prompt.PromptModel import org.multipaz.multipaz_compose.generated.resources.Res diff --git a/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/provisioning/Provisioning.kt b/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/provisioning/Provisioning.kt index 9e8d9a4ff..ff2637170 100644 --- a/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/provisioning/Provisioning.kt +++ b/multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/provisioning/Provisioning.kt @@ -19,7 +19,7 @@ import androidx.compose.ui.unit.dp import kotlinx.coroutines.launch import org.jetbrains.compose.resources.stringResource import org.multipaz.compose.PassphraseEntryField -import org.multipaz.models.provisioning.ProvisioningModel +import org.multipaz.provisioning.ProvisioningModel import org.multipaz.multipaz_compose.generated.resources.Res import org.multipaz.multipaz_compose.generated.resources.provisioning_authorization_failed import org.multipaz.multipaz_compose.generated.resources.provisioning_authorized diff --git a/multipaz-models/build.gradle.kts b/multipaz-models/build.gradle.kts deleted file mode 100644 index 33b497507..000000000 --- a/multipaz-models/build.gradle.kts +++ /dev/null @@ -1,160 +0,0 @@ -import org.gradle.kotlin.dsl.implementation -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework - -plugins { - alias(libs.plugins.kotlinMultiplatform) - alias(libs.plugins.androidLibrary) - id("maven-publish") -} - -val projectVersionCode: Int by rootProject.extra -val projectVersionName: String by rootProject.extra - -kotlin { - jvmToolchain(17) - - compilerOptions { - optIn.add("kotlin.time.ExperimentalTime") - freeCompilerArgs.add("-Xexpect-actual-classes") - } - - jvm() - - androidTarget { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - compilerOptions { - jvmTarget.set(JvmTarget.JVM_17) - } - - publishLibraryVariants("release") - } - - listOf( - iosX64(), - iosArm64(), - iosSimulatorArm64() - ).forEach { - val platform = when (it.name) { - "iosX64" -> "iphonesimulator" - "iosArm64" -> "iphoneos" - "iosSimulatorArm64" -> "iphonesimulator" - else -> error("Unsupported target ${it.name}") - } - it.binaries.all { - linkerOpts( - "-L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/${platform}/", - ) - } - } - - // we want some extra dependsOn calls to create - // javaSharedMain to share between JVM and Android, - // but otherwise want to follow default hierarchy. - applyDefaultHierarchyTemplate() - - sourceSets { - val commonMain by getting { - dependencies { - implementation(project(":multipaz")) - implementation(libs.kotlinx.coroutines.core) - implementation(libs.kotlinx.datetime) - implementation(libs.kotlinx.io.core) - implementation(libs.kotlinx.serialization.json) - } - } - - val androidMain by getting { - dependencies { - implementation(libs.tink) - implementation(libs.accompanist.permissions) - implementation(libs.androidx.material) - implementation(libs.play.services.identity.credentials) - implementation(libs.androidx.credentials) - implementation(libs.androidx.credentials.play.services.auth) - } - } - - val commonTest by getting { - dependencies { - implementation(libs.kotlin.test) - implementation(libs.kotlinx.coroutines.test) - implementation(libs.ktor.client.mock) - implementation(project(":multipaz-doctypes")) - } - } - - val androidInstrumentedTest by getting { - dependsOn(commonTest) - dependencies { - implementation(project(":multipaz-models:matcherTest")) - implementation(libs.androidx.test.junit) - implementation(libs.androidx.espresso.core) - implementation(libs.kotlin.test) - implementation(libs.kotlinx.coroutines.test) - implementation(libs.kotlinx.coroutines.android) - } - } - } -} - -android { - namespace = "org.multipaz.models" - compileSdk = libs.versions.android.compileSdk.get().toInt() - - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - dependencies { - implementation(libs.kotlinx.datetime) - } - - packaging { - resources { - excludes += listOf("/META-INF/{AL2.0,LGPL2.1}") - excludes += listOf("/META-INF/versions/9/OSGI-INF/MANIFEST.MF") - } - } - - publishing { - singleVariant("release") { - withSourcesJar() - } - } - - testOptions { - unitTests.isReturnDefaultValues = true - } -} - -group = "org.multipaz" -version = projectVersionName - -publishing { - repositories { - maven { - url = uri("${rootProject.rootDir}/repo") - } - } - publications.withType(MavenPublication::class) { - pom { - licenses { - license { - name = "Apache 2.0" - url = "https://opensource.org/licenses/Apache-2.0" - } - } - } - } -} - -subprojects { - apply(plugin = "org.jetbrains.dokka") -} diff --git a/multipaz-openid4vci-server/src/main/java/org/multipaz/models/verifier/Openid4VpVerifierModel.kt b/multipaz-openid4vci-server/src/main/java/org/multipaz/models/verifier/Openid4VpVerifierModel.kt index 84f164f7e..85f142aeb 100644 --- a/multipaz-openid4vci-server/src/main/java/org/multipaz/models/verifier/Openid4VpVerifierModel.kt +++ b/multipaz-openid4vci-server/src/main/java/org/multipaz/models/verifier/Openid4VpVerifierModel.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.verifier +package org.multipaz.verifier import kotlin.time.Clock import kotlinx.datetime.DateTimePeriod diff --git a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/authorize.kt b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/authorize.kt index 0b65d8434..9799c988f 100644 --- a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/authorize.kt +++ b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/authorize.kt @@ -26,7 +26,7 @@ import org.multipaz.crypto.SigningKey import org.multipaz.document.NameSpacedData import org.multipaz.documenttype.knowntypes.EUPersonalID import org.multipaz.jwt.buildJwt -import org.multipaz.models.verifier.Openid4VpVerifierModel +import org.multipaz.verifier.Openid4VpVerifierModel import org.multipaz.openid4vci.credential.CredentialFactory import org.multipaz.openid4vci.util.AUTHZ_REQ import org.multipaz.openid4vci.util.IssuanceState diff --git a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/credentialRequest.kt b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/credentialRequest.kt index c97d751c6..319fc7e92 100644 --- a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/credentialRequest.kt +++ b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/credentialRequest.kt @@ -8,7 +8,7 @@ import org.multipaz.rpc.handler.InvalidRequestException import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.jsonPrimitive -import org.multipaz.models.verifier.Openid4VpVerifierModel +import org.multipaz.verifier.Openid4VpVerifierModel import org.multipaz.openid4vci.util.AUTHZ_REQ import org.multipaz.openid4vci.util.IssuanceState import org.multipaz.openid4vci.util.OpaqueIdType diff --git a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/openid4VpResponse.kt b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/openid4VpResponse.kt index f0e2e3693..d489abced 100644 --- a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/openid4VpResponse.kt +++ b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/request/openid4VpResponse.kt @@ -10,7 +10,7 @@ import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.jsonPrimitive import kotlinx.serialization.json.put import org.multipaz.cbor.Tstr -import org.multipaz.models.verifier.Openid4VpVerifierModel +import org.multipaz.verifier.Openid4VpVerifierModel import org.multipaz.openid4vci.util.IssuanceState import org.multipaz.openid4vci.util.OpaqueIdType import org.multipaz.openid4vci.util.codeToId diff --git a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/util/IssuanceState.kt b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/util/IssuanceState.kt index a96b83a06..cee6e23e3 100644 --- a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/util/IssuanceState.kt +++ b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/util/IssuanceState.kt @@ -7,7 +7,7 @@ import kotlinx.io.bytestring.ByteString import org.multipaz.cbor.Cbor import org.multipaz.crypto.Algorithm import org.multipaz.crypto.Crypto -import org.multipaz.models.verifier.Openid4VpVerifierModel +import org.multipaz.verifier.Openid4VpVerifierModel import org.multipaz.provisioning.SecretCodeRequest import org.multipaz.rpc.backend.BackendEnvironment import org.multipaz.rpc.backend.getTable diff --git a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/util/reader.kt b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/util/reader.kt index 43a816329..e5969df92 100644 --- a/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/util/reader.kt +++ b/multipaz-openid4vci-server/src/main/java/org/multipaz/openid4vci/util/reader.kt @@ -11,9 +11,9 @@ import org.multipaz.crypto.SigningKey import org.multipaz.crypto.X500Name import org.multipaz.crypto.X509CertChain import org.multipaz.mdoc.util.MdocUtil -import org.multipaz.models.verifier.Openid4VpVerifierModel -import org.multipaz.models.verifier.fromCbor -import org.multipaz.models.verifier.toCbor +import org.multipaz.verifier.Openid4VpVerifierModel +import org.multipaz.verifier.fromCbor +import org.multipaz.verifier.toCbor import org.multipaz.rpc.backend.BackendEnvironment import org.multipaz.rpc.backend.getTable import org.multipaz.rpc.cache diff --git a/multipaz-verifier-server/build.gradle.kts b/multipaz-verifier-server/build.gradle.kts index 3d01a34d7..2d3ab7435 100644 --- a/multipaz-verifier-server/build.gradle.kts +++ b/multipaz-verifier-server/build.gradle.kts @@ -26,7 +26,6 @@ dependencies { ksp(project(":multipaz-cbor-rpc")) implementation(project(":multipaz")) implementation(project(":multipaz-doctypes")) - implementation(project(":multipaz-models")) implementation(project(":multipaz-longfellow")) implementation(libs.kotlinx.datetime) diff --git a/multipaz-verifier-server/src/main/java/org/multipaz/verifier/request/verifier.kt b/multipaz-verifier-server/src/main/java/org/multipaz/verifier/request/verifier.kt index c76987dbf..d00a54ce8 100644 --- a/multipaz-verifier-server/src/main/java/org/multipaz/verifier/request/verifier.kt +++ b/multipaz-verifier-server/src/main/java/org/multipaz/verifier/request/verifier.kt @@ -89,7 +89,7 @@ import org.multipaz.mdoc.request.buildDeviceRequestSuspend import org.multipaz.mdoc.zkp.ZkSystemRepository import org.multipaz.mdoc.zkp.ZkSystemSpec import org.multipaz.mdoc.zkp.longfellow.LongfellowZkSystem -import org.multipaz.models.openid.OpenID4VP +import org.multipaz.openid.OpenID4VP import org.multipaz.request.JsonRequestedClaim import org.multipaz.request.MdocRequestedClaim import org.multipaz.rpc.backend.Resources @@ -104,7 +104,7 @@ import org.multipaz.trustmanagement.TrustManager import org.multipaz.trustmanagement.TrustManagerLocal import org.multipaz.trustmanagement.TrustMetadata import org.multipaz.util.fromHex -import org.multipaz.models.verification.VerificationUtil +import org.multipaz.verification.VerificationUtil import java.net.URLEncoder import kotlin.IllegalArgumentException import kotlin.IllegalStateException diff --git a/multipaz/build.gradle.kts b/multipaz/build.gradle.kts index 8b8756f81..243c6f908 100644 --- a/multipaz/build.gradle.kts +++ b/multipaz/build.gradle.kts @@ -1,4 +1,5 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat +import org.gradle.kotlin.dsl.implementation import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.get import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi @@ -102,6 +103,7 @@ kotlin { implementation(libs.bouncy.castle.bcpkix) implementation(libs.kotlin.test) implementation(libs.kotlinx.coroutines.test) + implementation(libs.ktor.client.mock) implementation(project(":multipaz-doctypes")) } } @@ -124,6 +126,9 @@ kotlin { dependencies { implementation(libs.androidx.biometrics) implementation(libs.androidx.lifecycle.viewmodel) + implementation(libs.play.services.identity.credentials) + implementation(libs.androidx.credentials) + implementation(libs.androidx.credentials.play.services.auth) } } @@ -151,7 +156,12 @@ kotlin { } val androidInstrumentedTest by getting { + dependsOn(commonTest) dependencies { + implementation(libs.bouncy.castle.bcprov) + implementation(libs.bouncy.castle.bcpkix) + implementation(project(":multipaz-doctypes")) + implementation(project(":multipaz:matcherTest")) implementation(libs.androidx.sqlite) implementation(libs.androidx.sqlite.framework) implementation(libs.androidx.sqlite.bundled) @@ -161,8 +171,6 @@ kotlin { implementation(libs.kotlinx.coroutines.test) implementation(libs.kotlinx.coroutines.android) implementation(libs.ktor.client.mock) - implementation(libs.bouncy.castle.bcprov) - implementation(libs.bouncy.castle.bcpkix) implementation(project(":multipaz-csa")) } } @@ -215,8 +223,6 @@ android { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } - dependencies { - } packaging { resources { diff --git a/multipaz-models/matcherTest/CMakeLists.txt b/multipaz/matcherTest/CMakeLists.txt similarity index 100% rename from multipaz-models/matcherTest/CMakeLists.txt rename to multipaz/matcherTest/CMakeLists.txt diff --git a/multipaz-models/matcherTest/DcqlQueryTest.cpp b/multipaz/matcherTest/DcqlQueryTest.cpp similarity index 97% rename from multipaz-models/matcherTest/DcqlQueryTest.cpp rename to multipaz/matcherTest/DcqlQueryTest.cpp index 27eddea62..f7272a6af 100644 --- a/multipaz-models/matcherTest/DcqlQueryTest.cpp +++ b/multipaz/matcherTest/DcqlQueryTest.cpp @@ -11,7 +11,7 @@ extern "C" JNIEXPORT jstring JNICALL -Java_org_multipaz_models_presentment_MatcherDcqlQueryExecuteTest_executeDcqlQuery( +Java_org_multipaz_presentment_model_MatcherDcqlQueryExecuteTest_executeDcqlQuery( JNIEnv *env, jobject thiz, jbyteArray requestBytes, diff --git a/multipaz-models/matcherTest/MatcherTest.cpp b/multipaz/matcherTest/MatcherTest.cpp similarity index 100% rename from multipaz-models/matcherTest/MatcherTest.cpp rename to multipaz/matcherTest/MatcherTest.cpp diff --git a/multipaz-models/matcherTest/build.gradle.kts b/multipaz/matcherTest/build.gradle.kts similarity index 84% rename from multipaz-models/matcherTest/build.gradle.kts rename to multipaz/matcherTest/build.gradle.kts index 5aed66d89..cbbb0ebc0 100644 --- a/multipaz-models/matcherTest/build.gradle.kts +++ b/multipaz/matcherTest/build.gradle.kts @@ -4,7 +4,7 @@ plugins { android { - namespace = "org.multipaz.models.presentment" + namespace = "org.multipaz.presentment.model" compileSdk = libs.versions.android.compileSdk.get().toInt() defaultConfig { diff --git a/multipaz-models/src/androidInstrumentedTest/kotlin/org/multipaz/models/presentment/MatcherDcqlQueryExecuteTest.kt b/multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/presentment/model/MatcherDcqlQueryExecuteTest.kt similarity index 97% rename from multipaz-models/src/androidInstrumentedTest/kotlin/org/multipaz/models/presentment/MatcherDcqlQueryExecuteTest.kt rename to multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/presentment/model/MatcherDcqlQueryExecuteTest.kt index 2db69d29e..64344d976 100644 --- a/multipaz-models/src/androidInstrumentedTest/kotlin/org/multipaz/models/presentment/MatcherDcqlQueryExecuteTest.kt +++ b/multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/presentment/model/MatcherDcqlQueryExecuteTest.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import kotlinx.coroutines.test.runTest import kotlinx.serialization.json.Json @@ -18,14 +18,15 @@ import org.multipaz.crypto.EcPrivateKey import org.multipaz.crypto.SigningKey import org.multipaz.crypto.X500Name import org.multipaz.crypto.X509CertChain +import org.multipaz.digitalcredentials.calculateCredentialDatabase import org.multipaz.mdoc.util.MdocUtil -import org.multipaz.models.digitalcredentials.DigitalCredentials -import org.multipaz.models.digitalcredentials.calculateCredentialDatabase -import org.multipaz.models.openid.OpenID4VP +import org.multipaz.digitalcredentials.DigitalCredentials +import org.multipaz.openid.OpenID4VP +import org.multipaz.presentment.model.DocumentStoreTestHarness import org.multipaz.util.toBase64Url import kotlin.random.Random -// This is like the tests in org.multipaz.models.openid.dcql.* in commonTest but this time for +// This is like the tests in org.multipaz.openid.dcql.* in commonTest but this time for // DCQL query execution logic in the matcher (c++) instead of the wallet app (Kotlin)... // class MatcherDcqlQueryExecuteTest { @@ -34,16 +35,17 @@ class MatcherDcqlQueryExecuteTest { private const val CLIENT_ID = "x509_san_dns:verifier.multipaz.org" private const val ORIGIN = "https://verifier.multipaz.org" - } - init { - System.loadLibrary("MatcherTest") - } + init { + System.loadLibrary("MatcherTest") + } - external fun executeDcqlQuery( - request: ByteArray, - credentialDatabase: ByteArray, - ): String + @JvmStatic + external fun executeDcqlQuery( + request: ByteArray, + credentialDatabase: ByteArray, + ): String + } suspend fun testExecuteDcqlQuery( version: OpenID4VP.Version, diff --git a/multipaz-models/src/androidInstrumentedTest/kotlin/org/multipaz/models/presentment/MatcherTest.kt b/multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/presentment/model/MatcherTest.kt similarity index 99% rename from multipaz-models/src/androidInstrumentedTest/kotlin/org/multipaz/models/presentment/MatcherTest.kt rename to multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/presentment/model/MatcherTest.kt index 1204d3dd6..ffcaaee16 100644 --- a/multipaz-models/src/androidInstrumentedTest/kotlin/org/multipaz/models/presentment/MatcherTest.kt +++ b/multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/presentment/model/MatcherTest.kt @@ -25,9 +25,10 @@ import org.multipaz.crypto.X509CertChain import org.multipaz.documenttype.knowntypes.EUPersonalID import org.multipaz.documenttype.knowntypes.UtopiaMovieTicket import org.multipaz.mdoc.util.MdocUtil -import org.multipaz.models.digitalcredentials.DigitalCredentials -import org.multipaz.models.digitalcredentials.calculateCredentialDatabase -import org.multipaz.models.openid.OpenID4VP +import org.multipaz.digitalcredentials.DigitalCredentials +import org.multipaz.digitalcredentials.calculateCredentialDatabase +import org.multipaz.openid.OpenID4VP +import org.multipaz.presentment.model.DocumentStoreTestHarness import org.multipaz.util.toBase64Url import kotlin.random.Random @@ -143,7 +144,7 @@ class MatcherTest { """.trimIndent().trim(), ) Assert.assertEquals( - """ + """ Set set_id 0 openid4vp-v1-signed SetEntry set_index 0 @@ -1494,4 +1495,4 @@ class MatcherTest { matcherResult ) } -} +} \ No newline at end of file diff --git a/multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/testUtil.android.kt b/multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/testUtil.android.kt new file mode 100644 index 000000000..0f7054cb6 --- /dev/null +++ b/multipaz/src/androidInstrumentedTest/kotlin/org/multipaz/testUtil.android.kt @@ -0,0 +1,18 @@ +package org.multipaz + +import org.bouncycastle.jce.provider.BouncyCastleProvider +import org.multipaz.crypto.Crypto +import java.security.Security + +actual fun testUtilSetupCryptoProvider() { + // On Android (in tests), load BouncyCastleProvider so we can exercise + // all the tests involving Brainpool curves. + // We use addProvider() instead of insertProviderAt() to avoid making BC the + // default provider, which can cause ClassCastExceptions with standard java interfaces. + Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME) // remove first to ensure it's not already there + Security.addProvider(BouncyCastleProvider()) + + println("In testUtilCommonSetup for androidInstrumentedTest") + println("Crypto.provider: ${Crypto.provider}") + println("Crypto.supportedCurves: ${Crypto.supportedCurves}") +} diff --git a/multipaz-models/src/androidMain/assets/identitycredentialmatcher.wasm b/multipaz/src/androidMain/assets/identitycredentialmatcher.wasm similarity index 100% rename from multipaz-models/src/androidMain/assets/identitycredentialmatcher.wasm rename to multipaz/src/androidMain/assets/identitycredentialmatcher.wasm diff --git a/multipaz-models/src/androidMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.android.kt b/multipaz/src/androidMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.android.kt similarity index 99% rename from multipaz-models/src/androidMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.android.kt rename to multipaz/src/androidMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.android.kt index e94d7db85..491af62d6 100644 --- a/multipaz-models/src/androidMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.android.kt +++ b/multipaz/src/androidMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.android.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.digitalcredentials +package org.multipaz.digitalcredentials import android.content.Context import android.graphics.Bitmap diff --git a/multipaz-models/src/androidMain/matcher/CredentialDatabase.cpp b/multipaz/src/androidMain/matcher/CredentialDatabase.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/CredentialDatabase.cpp rename to multipaz/src/androidMain/matcher/CredentialDatabase.cpp diff --git a/multipaz-models/src/androidMain/matcher/CredentialDatabase.h b/multipaz/src/androidMain/matcher/CredentialDatabase.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/CredentialDatabase.h rename to multipaz/src/androidMain/matcher/CredentialDatabase.h diff --git a/multipaz-models/src/androidMain/matcher/Makefile b/multipaz/src/androidMain/matcher/Makefile similarity index 100% rename from multipaz-models/src/androidMain/matcher/Makefile rename to multipaz/src/androidMain/matcher/Makefile diff --git a/multipaz-models/src/androidMain/matcher/README.md b/multipaz/src/androidMain/matcher/README.md similarity index 100% rename from multipaz-models/src/androidMain/matcher/README.md rename to multipaz/src/androidMain/matcher/README.md diff --git a/multipaz-models/src/androidMain/matcher/Request.cpp b/multipaz/src/androidMain/matcher/Request.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/Request.cpp rename to multipaz/src/androidMain/matcher/Request.cpp diff --git a/multipaz-models/src/androidMain/matcher/Request.h b/multipaz/src/androidMain/matcher/Request.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/Request.h rename to multipaz/src/androidMain/matcher/Request.h diff --git a/multipaz-models/src/androidMain/matcher/base64.h b/multipaz/src/androidMain/matcher/base64.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/base64.h rename to multipaz/src/androidMain/matcher/base64.h diff --git a/multipaz-models/src/androidMain/matcher/cJSON-LICENSE b/multipaz/src/androidMain/matcher/cJSON-LICENSE similarity index 100% rename from multipaz-models/src/androidMain/matcher/cJSON-LICENSE rename to multipaz/src/androidMain/matcher/cJSON-LICENSE diff --git a/multipaz-models/src/androidMain/matcher/cJSON.c b/multipaz/src/androidMain/matcher/cJSON.c similarity index 100% rename from multipaz-models/src/androidMain/matcher/cJSON.c rename to multipaz/src/androidMain/matcher/cJSON.c diff --git a/multipaz-models/src/androidMain/matcher/cJSON.h b/multipaz/src/androidMain/matcher/cJSON.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/cJSON.h rename to multipaz/src/androidMain/matcher/cJSON.h diff --git a/multipaz-models/src/androidMain/matcher/cppbor.cpp b/multipaz/src/androidMain/matcher/cppbor.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/cppbor.cpp rename to multipaz/src/androidMain/matcher/cppbor.cpp diff --git a/multipaz-models/src/androidMain/matcher/cppbor.h b/multipaz/src/androidMain/matcher/cppbor.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/cppbor.h rename to multipaz/src/androidMain/matcher/cppbor.h diff --git a/multipaz-models/src/androidMain/matcher/cppbor_parse.cpp b/multipaz/src/androidMain/matcher/cppbor_parse.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/cppbor_parse.cpp rename to multipaz/src/androidMain/matcher/cppbor_parse.cpp diff --git a/multipaz-models/src/androidMain/matcher/cppbor_parse.h b/multipaz/src/androidMain/matcher/cppbor_parse.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/cppbor_parse.h rename to multipaz/src/androidMain/matcher/cppbor_parse.h diff --git a/multipaz-models/src/androidMain/matcher/credentialmanager.h b/multipaz/src/androidMain/matcher/credentialmanager.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/credentialmanager.h rename to multipaz/src/androidMain/matcher/credentialmanager.h diff --git a/multipaz-models/src/androidMain/matcher/dcql.cpp b/multipaz/src/androidMain/matcher/dcql.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/dcql.cpp rename to multipaz/src/androidMain/matcher/dcql.cpp diff --git a/multipaz-models/src/androidMain/matcher/dcql.h b/multipaz/src/androidMain/matcher/dcql.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/dcql.h rename to multipaz/src/androidMain/matcher/dcql.h diff --git a/multipaz-models/src/androidMain/matcher/logger.cpp b/multipaz/src/androidMain/matcher/logger.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/logger.cpp rename to multipaz/src/androidMain/matcher/logger.cpp diff --git a/multipaz-models/src/androidMain/matcher/logger.h b/multipaz/src/androidMain/matcher/logger.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/logger.h rename to multipaz/src/androidMain/matcher/logger.h diff --git a/multipaz-models/src/androidMain/matcher/main.cpp b/multipaz/src/androidMain/matcher/main.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/main.cpp rename to multipaz/src/androidMain/matcher/main.cpp diff --git a/multipaz-models/src/androidMain/matcher/matcher.cpp b/multipaz/src/androidMain/matcher/matcher.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/matcher.cpp rename to multipaz/src/androidMain/matcher/matcher.cpp diff --git a/multipaz-models/src/androidMain/matcher/paths.cpp b/multipaz/src/androidMain/matcher/paths.cpp similarity index 100% rename from multipaz-models/src/androidMain/matcher/paths.cpp rename to multipaz/src/androidMain/matcher/paths.cpp diff --git a/multipaz-models/src/androidMain/matcher/paths.h b/multipaz/src/androidMain/matcher/paths.h similarity index 100% rename from multipaz-models/src/androidMain/matcher/paths.h rename to multipaz/src/androidMain/matcher/paths.h diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.kt b/multipaz/src/commonMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.kt similarity index 96% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.kt index 12ba8baff..c6f7481b3 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.kt @@ -1,10 +1,10 @@ -package org.multipaz.models.digitalcredentials +package org.multipaz.digitalcredentials import kotlinx.serialization.json.JsonObject import org.multipaz.document.DocumentStore import org.multipaz.documenttype.DocumentTypeRepository -import org.multipaz.models.verification.VerificationUtil -import org.multipaz.models.verification.VerifiedPresentation +import org.multipaz.verification.VerificationUtil +import org.multipaz.verification.VerifiedPresentation /** * An interface for interacting with the W3C Digital Credentials API provider diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/OpenID4VP.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/OpenID4VP.kt similarity index 98% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/OpenID4VP.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/OpenID4VP.kt index a14930966..b0749aee1 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/OpenID4VP.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/OpenID4VP.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid +package org.multipaz.openid import kotlin.time.Clock import kotlinx.io.bytestring.ByteString @@ -38,11 +38,11 @@ import org.multipaz.mdoc.response.DeviceResponseGenerator import org.multipaz.mdoc.response.DocumentGenerator import org.multipaz.mdoc.zkp.ZkSystem import org.multipaz.mdoc.zkp.ZkSystemSpec -import org.multipaz.models.openid.dcql.DcqlQuery -import org.multipaz.models.openid.dcql.DcqlResponseCredentialSetOptionMemberMatch -import org.multipaz.models.presentment.PresentmentCanceled -import org.multipaz.models.presentment.PresentmentSource -import org.multipaz.models.presentment.findTrustPoint +import org.multipaz.openid.dcql.DcqlQuery +import org.multipaz.openid.dcql.DcqlResponseCredentialSetOptionMemberMatch +import org.multipaz.presentment.model.PresentmentCanceled +import org.multipaz.presentment.model.PresentmentSource +import org.multipaz.presentment.model.findTrustPoint import org.multipaz.presentment.CredentialPresentmentData import org.multipaz.presentment.CredentialPresentmentSelection import org.multipaz.request.JsonRequestedClaim diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlClaimSet.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlClaimSet.kt similarity index 83% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlClaimSet.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlClaimSet.kt index 5e9033250..17d1e41e9 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlClaimSet.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlClaimSet.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql /** * DCQL Claim Set. diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialQuery.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialQuery.kt similarity index 95% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialQuery.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialQuery.kt index f28bd2d40..221be4fe7 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialQuery.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialQuery.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.serialization.json.JsonObject import org.multipaz.request.RequestedClaim diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialQueryException.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialQueryException.kt similarity index 82% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialQueryException.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialQueryException.kt index cdde4d97d..ad804ecc1 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialQueryException.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialQueryException.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql /** * Thrown when a credential query cannot be satisfied. diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialSetOption.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialSetOption.kt similarity index 85% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialSetOption.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialSetOption.kt index 19c1c44ca..35ca110cb 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialSetOption.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialSetOption.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql /** * DCQL credential set options. diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialSetQuery.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialSetQuery.kt similarity index 81% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialSetQuery.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialSetQuery.kt index 033014e45..016aafaa6 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlCredentialSetQuery.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlCredentialSetQuery.kt @@ -1,6 +1,4 @@ -package org.multipaz.models.openid.dcql - -import kotlinx.serialization.json.JsonElement +package org.multipaz.openid.dcql /** * DCQL Credential Set. diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlQuery.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlQuery.kt similarity index 99% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlQuery.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlQuery.kt index a9296f43f..2fbe6de32 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlQuery.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlQuery.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.boolean @@ -10,7 +10,7 @@ import org.multipaz.claim.findMatchingClaim import org.multipaz.credential.Credential import org.multipaz.crypto.EcCurve import org.multipaz.mdoc.credential.MdocCredential -import org.multipaz.models.presentment.PresentmentSource +import org.multipaz.presentment.model.PresentmentSource import org.multipaz.request.JsonRequestedClaim import org.multipaz.request.MdocRequestedClaim import org.multipaz.request.RequestedClaim diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponse.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponse.kt similarity index 99% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponse.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponse.kt index 76ba00e1c..0dd025fa1 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponse.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponse.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import org.multipaz.document.Document import org.multipaz.presentment.CredentialPresentmentSetOptionMemberMatch diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSet.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSet.kt similarity index 97% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSet.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSet.kt index b2362d932..552aa5f6f 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSet.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSet.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import org.multipaz.presentment.CredentialPresentmentSet diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOption.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOption.kt similarity index 87% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOption.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOption.kt index 99534bccd..a3e58562d 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOption.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOption.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import org.multipaz.presentment.CredentialPresentmentSetOption diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOptionMember.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOptionMember.kt similarity index 88% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOptionMember.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOptionMember.kt index fb346c491..206570132 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOptionMember.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOptionMember.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import org.multipaz.presentment.CredentialPresentmentSetOptionMember diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOptionMemberMatch.kt b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOptionMemberMatch.kt similarity index 93% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOptionMemberMatch.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOptionMemberMatch.kt index 96618ffc8..bc203ea77 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/openid/dcql/DcqlResponseCredentialSetOptionMemberMatch.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/openid/dcql/DcqlResponseCredentialSetOptionMemberMatch.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import org.multipaz.claim.Claim import org.multipaz.credential.Credential diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/DeviceRequestParserExt.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/DeviceRequestParserExt.kt similarity index 97% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/DeviceRequestParserExt.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/DeviceRequestParserExt.kt index 4d75b5e4b..a12a5c0f0 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/DeviceRequestParserExt.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/DeviceRequestParserExt.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import org.multipaz.claim.Claim import org.multipaz.claim.findMatchingClaim @@ -10,7 +10,6 @@ import org.multipaz.mdoc.request.DeviceRequestParser import org.multipaz.mdoc.util.toMdocRequest import org.multipaz.mdoc.zkp.ZkSystem import org.multipaz.mdoc.zkp.ZkSystemSpec -import org.multipaz.presentment.CredentialPresentmentSet import org.multipaz.presentment.CredentialPresentmentData import org.multipaz.presentment.SimpleCredentialPresentmentData import org.multipaz.request.RequestedClaim diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/DigitalCredentialsPresentmentMechanism.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/DigitalCredentialsPresentmentMechanism.kt similarity index 93% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/DigitalCredentialsPresentmentMechanism.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/DigitalCredentialsPresentmentMechanism.kt index 9f3d53719..8b24f9d44 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/DigitalCredentialsPresentmentMechanism.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/DigitalCredentialsPresentmentMechanism.kt @@ -1,7 +1,7 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import kotlinx.serialization.json.JsonObject -import org.multipaz.models.digitalcredentials.DigitalCredentials +import org.multipaz.digitalcredentials.DigitalCredentials import org.multipaz.document.Document /** diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/MdocPresentmentMechanism.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/MdocPresentmentMechanism.kt similarity index 93% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/MdocPresentmentMechanism.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/MdocPresentmentMechanism.kt index a68d273ef..bd45a5c46 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/MdocPresentmentMechanism.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/MdocPresentmentMechanism.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import org.multipaz.cbor.DataItem import org.multipaz.crypto.EcPrivateKey @@ -8,7 +8,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO import kotlinx.coroutines.launch import kotlinx.io.bytestring.ByteString -import org.multipaz.mdoc.zkp.ZkSystemRepository import kotlin.time.Duration /** diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentCanceled.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentCanceled.kt similarity index 79% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentCanceled.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentCanceled.kt index 210209db0..ff8066cef 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentCanceled.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentCanceled.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model /** * Thrown when presentment was cancelled. diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentMechanism.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentMechanism.kt similarity index 86% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentMechanism.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentMechanism.kt index 85c6e4f76..13fa20dbc 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentMechanism.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentMechanism.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model /** * Abstract interface to represent a mechanism used to connect a credential reader diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentModel.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentModel.kt similarity index 99% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentModel.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentModel.kt index d951c3fba..5f2d0913b 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentModel.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentModel.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import org.multipaz.mdoc.sessionencryption.SessionEncryption import org.multipaz.prompt.PromptModel diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentSource.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentSource.kt similarity index 97% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentSource.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentSource.kt index c097e3309..c22c44a22 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentSource.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentSource.kt @@ -1,10 +1,8 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import kotlin.time.Clock import org.multipaz.credential.Credential -import org.multipaz.credential.SecureAreaBoundCredential import org.multipaz.crypto.EcCurve -import org.multipaz.crypto.X509Cert import org.multipaz.document.Document import org.multipaz.document.DocumentStore import org.multipaz.documenttype.DocumentTypeRepository @@ -15,12 +13,10 @@ import org.multipaz.request.MdocRequest import org.multipaz.request.Request import org.multipaz.request.RequestedClaim import org.multipaz.request.Requester -import org.multipaz.sdjwt.credential.KeylessSdJwtVcCredential import org.multipaz.sdjwt.credential.SdJwtVcCredential import org.multipaz.trustmanagement.TrustManager import org.multipaz.trustmanagement.TrustMetadata import org.multipaz.trustmanagement.TrustPoint -import org.multipaz.trustmanagement.TrustResult import org.multipaz.util.Logger /** diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentTimeout.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentTimeout.kt similarity index 81% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentTimeout.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentTimeout.kt index 1485e2eb5..c1168dc62 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/PresentmentTimeout.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/PresentmentTimeout.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model /** * Thrown when timing out waiting for the reader to connect. diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/SimplePresentmentSource.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/SimplePresentmentSource.kt similarity index 99% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/SimplePresentmentSource.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/SimplePresentmentSource.kt index 4aa3c7e6d..24c30b09e 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/SimplePresentmentSource.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/SimplePresentmentSource.kt @@ -1,10 +1,9 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import kotlin.time.Clock import org.multipaz.credential.Credential import org.multipaz.credential.SecureAreaBoundCredential import org.multipaz.crypto.EcCurve -import org.multipaz.crypto.X509Cert import org.multipaz.document.Document import org.multipaz.document.DocumentStore import org.multipaz.documenttype.DocumentTypeRepository diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/UriSchemePresentmentMechanism.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/UriSchemePresentmentMechanism.kt similarity index 86% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/UriSchemePresentmentMechanism.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/UriSchemePresentmentMechanism.kt index 2cf723f75..08d1d6820 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/UriSchemePresentmentMechanism.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/UriSchemePresentmentMechanism.kt @@ -1,8 +1,6 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import io.ktor.client.engine.HttpClientEngineFactory -import org.multipaz.document.Document -import org.multipaz.models.digitalcredentials.DigitalCredentials /** * A [PresentmentMechanism] to use with [PresentmentModel] when using presentations implemented diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/digitalCredentialsPresentment.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/digitalCredentialsPresentment.kt similarity index 99% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/digitalCredentialsPresentment.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/digitalCredentialsPresentment.kt index 91674200e..5fff37105 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/digitalCredentialsPresentment.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/digitalCredentialsPresentment.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.io.bytestring.ByteString @@ -28,7 +28,7 @@ import org.multipaz.mdoc.response.DeviceResponseGenerator import org.multipaz.mdoc.response.DocumentGenerator import org.multipaz.mdoc.zkp.ZkSystem import org.multipaz.mdoc.zkp.ZkSystemSpec -import org.multipaz.models.openid.OpenID4VP +import org.multipaz.openid.OpenID4VP import org.multipaz.presentment.CredentialPresentmentData import org.multipaz.presentment.CredentialPresentmentSelection import org.multipaz.request.MdocRequestedClaim diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/mdocPresentment.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/mdocPresentment.kt similarity index 99% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/mdocPresentment.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/mdocPresentment.kt index a32309fff..06a551aca 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/mdocPresentment.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/mdocPresentment.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.first diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/uriSchemePresentment.kt b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/uriSchemePresentment.kt similarity index 98% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/uriSchemePresentment.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/uriSchemePresentment.kt index 2a1282743..d2204f5d9 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/presentment/uriSchemePresentment.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/presentment/model/uriSchemePresentment.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import io.ktor.client.HttpClient import io.ktor.client.call.body @@ -22,7 +22,7 @@ import kotlinx.serialization.json.put import org.multipaz.crypto.JsonWebSignature import org.multipaz.document.Document import org.multipaz.documenttype.DocumentTypeRepository -import org.multipaz.models.openid.OpenID4VP +import org.multipaz.openid.OpenID4VP import org.multipaz.presentment.CredentialPresentmentData import org.multipaz.presentment.CredentialPresentmentSelection import org.multipaz.request.Requester diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/provisioning/ProvisioningModel.kt b/multipaz/src/commonMain/kotlin/org/multipaz/provisioning/ProvisioningModel.kt similarity index 99% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/provisioning/ProvisioningModel.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/provisioning/ProvisioningModel.kt index 0ffe1e5c5..cdbb632f6 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/provisioning/ProvisioningModel.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/provisioning/ProvisioningModel.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.provisioning +package org.multipaz.provisioning import io.ktor.client.HttpClient import kotlinx.coroutines.CancellationException diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/DcResponse.kt b/multipaz/src/commonMain/kotlin/org/multipaz/verification/DcResponse.kt similarity index 70% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/DcResponse.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/verification/DcResponse.kt index c460596c2..cc3c44e70 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/DcResponse.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/verification/DcResponse.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.verification +package org.multipaz.verification /** * Abstract base class for W3C Digital Credentials API responses. diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/JsonVerifiedPresentation.kt b/multipaz/src/commonMain/kotlin/org/multipaz/verification/JsonVerifiedPresentation.kt similarity index 95% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/JsonVerifiedPresentation.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/verification/JsonVerifiedPresentation.kt index 86e1459c9..5330d5e5f 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/JsonVerifiedPresentation.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/verification/JsonVerifiedPresentation.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.verification +package org.multipaz.verification import org.multipaz.claim.JsonClaim import org.multipaz.crypto.X509CertChain diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/MdocApiDcResponse.kt b/multipaz/src/commonMain/kotlin/org/multipaz/verification/MdocApiDcResponse.kt similarity index 91% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/MdocApiDcResponse.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/verification/MdocApiDcResponse.kt index 72c1f0cc5..c5c83a12e 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/MdocApiDcResponse.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/verification/MdocApiDcResponse.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.verification +package org.multipaz.verification import org.multipaz.cbor.DataItem diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/MdocVerifiedPresentation.kt b/multipaz/src/commonMain/kotlin/org/multipaz/verification/MdocVerifiedPresentation.kt similarity index 95% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/MdocVerifiedPresentation.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/verification/MdocVerifiedPresentation.kt index a1b2baa6a..7e311cd1c 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/MdocVerifiedPresentation.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/verification/MdocVerifiedPresentation.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.verification +package org.multipaz.verification import org.multipaz.claim.MdocClaim import org.multipaz.crypto.X509CertChain diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/OpenID4VPDcResponse.kt b/multipaz/src/commonMain/kotlin/org/multipaz/verification/OpenID4VPDcResponse.kt similarity index 92% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/OpenID4VPDcResponse.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/verification/OpenID4VPDcResponse.kt index 27ce5ebeb..ddb01e050 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/OpenID4VPDcResponse.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/verification/OpenID4VPDcResponse.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.verification +package org.multipaz.verification import kotlinx.serialization.json.JsonObject import org.multipaz.cbor.DataItem diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/VerificationUtil.kt b/multipaz/src/commonMain/kotlin/org/multipaz/verification/VerificationUtil.kt similarity index 99% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/VerificationUtil.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/verification/VerificationUtil.kt index e550a988d..068230acf 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/VerificationUtil.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/verification/VerificationUtil.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.verification +package org.multipaz.verification import kotlinx.io.bytestring.ByteString import kotlinx.serialization.json.Json @@ -39,7 +39,7 @@ import org.multipaz.mdoc.request.buildDeviceRequest import org.multipaz.mdoc.response.DeviceResponseParser import org.multipaz.mdoc.zkp.ZkSystemRepository import org.multipaz.mdoc.zkp.ZkSystemSpec -import org.multipaz.models.openid.OpenID4VP +import org.multipaz.openid.OpenID4VP import org.multipaz.request.JsonRequestedClaim import org.multipaz.request.MdocRequestedClaim import org.multipaz.sdjwt.SdJwt diff --git a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/VerifiedPresentation.kt b/multipaz/src/commonMain/kotlin/org/multipaz/verification/VerifiedPresentation.kt similarity index 96% rename from multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/VerifiedPresentation.kt rename to multipaz/src/commonMain/kotlin/org/multipaz/verification/VerifiedPresentation.kt index 8963960a3..2452b5db0 100644 --- a/multipaz-models/src/commonMain/kotlin/org/multipaz/models/verification/VerifiedPresentation.kt +++ b/multipaz/src/commonMain/kotlin/org/multipaz/verification/VerifiedPresentation.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.verification +package org.multipaz.verification import org.multipaz.claim.Claim import org.multipaz.crypto.X509CertChain diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/PrettyPrinter.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/PrettyPrinter.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/PrettyPrinter.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/PrettyPrinter.kt index 63362a5fe..f56ee8960 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/PrettyPrinter.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/PrettyPrinter.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import org.multipaz.claim.JsonClaim import org.multipaz.claim.MdocClaim diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestCredentialSets.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestCredentialSets.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestCredentialSets.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestCredentialSets.kt index 4107a2def..cd0e0f4f8 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestCredentialSets.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestCredentialSets.kt @@ -1,11 +1,11 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.jsonObject -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestMdlOrPid.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestMdlOrPid.kt similarity index 98% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestMdlOrPid.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestMdlOrPid.kt index 627ab1b39..e7a30da79 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestMdlOrPid.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestMdlOrPid.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest @@ -9,7 +9,7 @@ import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.jsonObject import org.multipaz.documenttype.knowntypes.DrivingLicense import org.multipaz.documenttype.knowntypes.EUPersonalID -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestMultipleCredentials.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestMultipleCredentials.kt similarity index 98% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestMultipleCredentials.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestMultipleCredentials.kt index 93c8eedb3..71ebcf2fb 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestMultipleCredentials.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestMultipleCredentials.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest import org.multipaz.cbor.Tstr @@ -6,7 +6,7 @@ import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.jsonObject -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestPathSelection.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestPathSelection.kt similarity index 97% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestPathSelection.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestPathSelection.kt index 711774160..82a9bd837 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestPathSelection.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestPathSelection.kt @@ -1,8 +1,6 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest -import kotlinx.serialization.json.JsonArray -import kotlinx.serialization.json.JsonNull import org.multipaz.cbor.Tstr import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.add @@ -14,7 +12,7 @@ import org.multipaz.claim.MdocClaim import org.multipaz.claim.findMatchingClaim import org.multipaz.document.Document import org.multipaz.documenttype.knowntypes.EUPersonalID -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import org.multipaz.request.JsonRequestedClaim import org.multipaz.request.MdocRequestedClaim import kotlin.test.Test diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestPrivacyPreservingAgeRequest.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestPrivacyPreservingAgeRequest.kt similarity index 98% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestPrivacyPreservingAgeRequest.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestPrivacyPreservingAgeRequest.kt index 9f3df4a47..c11837d81 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestPrivacyPreservingAgeRequest.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestPrivacyPreservingAgeRequest.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest import org.multipaz.cbor.Tstr @@ -7,7 +7,7 @@ import org.multipaz.cbor.toDataItemFullDate import kotlinx.datetime.LocalDate import kotlinx.serialization.json.Json import kotlinx.serialization.json.jsonObject -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestQueryParsing.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestQueryParsing.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestQueryParsing.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestQueryParsing.kt index b922253e7..2d383d2eb 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestQueryParsing.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestQueryParsing.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.serialization.json.Json import kotlinx.serialization.json.jsonObject diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestSingleMdlQuery.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestSingleMdlQuery.kt similarity index 98% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestSingleMdlQuery.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestSingleMdlQuery.kt index a4c5f3f95..25db5a24e 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestSingleMdlQuery.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestSingleMdlQuery.kt @@ -1,10 +1,10 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest import org.multipaz.cbor.Tstr import kotlinx.serialization.json.Json import kotlinx.serialization.json.jsonObject -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestSingleSdJwtVcQuery.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestSingleSdJwtVcQuery.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestSingleSdJwtVcQuery.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestSingleSdJwtVcQuery.kt index 914aecd32..83d350489 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestSingleSdJwtVcQuery.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestSingleSdJwtVcQuery.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest import kotlinx.serialization.json.Json @@ -6,7 +6,7 @@ import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.jsonObject import org.multipaz.documenttype.knowntypes.EUPersonalID -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestValueMatching.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestValueMatching.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestValueMatching.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestValueMatching.kt index c4927d1f0..8745bd143 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestValueMatching.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestValueMatching.kt @@ -1,11 +1,11 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest import org.multipaz.cbor.Tstr import org.multipaz.cbor.Uint import kotlinx.serialization.json.Json import kotlinx.serialization.json.jsonObject -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import kotlin.test.Test import kotlin.test.assertEquals diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestValueMatchingClaimSet.kt b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestValueMatchingClaimSet.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestValueMatchingClaimSet.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestValueMatchingClaimSet.kt index 930786ce4..7e1686ed0 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/openid/dcql/TestValueMatchingClaimSet.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/openid/dcql/TestValueMatchingClaimSet.kt @@ -1,11 +1,11 @@ -package org.multipaz.models.openid.dcql +package org.multipaz.openid.dcql import kotlinx.coroutines.test.runTest import org.multipaz.cbor.Tstr import org.multipaz.cbor.toDataItem import kotlinx.serialization.json.Json import kotlinx.serialization.json.jsonObject -import org.multipaz.models.presentment.DocumentStoreTestHarness +import org.multipaz.presentment.model.DocumentStoreTestHarness import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/presentment/DocumentStoreTestHarness.kt b/multipaz/src/commonTest/kotlin/org/multipaz/presentment/model/DocumentStoreTestHarness.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/presentment/DocumentStoreTestHarness.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/presentment/model/DocumentStoreTestHarness.kt index 9f9656b54..37b833dff 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/presentment/DocumentStoreTestHarness.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/presentment/model/DocumentStoreTestHarness.kt @@ -1,12 +1,10 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonPrimitive -import kotlin.time.Clock -import kotlin.time.Instant import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.put import org.multipaz.asn1.ASN1Integer @@ -54,10 +52,10 @@ import org.multipaz.storage.Storage import org.multipaz.storage.ephemeral.EphemeralStorage import org.multipaz.trustmanagement.TrustManagerLocal import org.multipaz.util.Logger -import kotlin.collections.component1 -import kotlin.collections.component2 import kotlin.collections.iterator +import kotlin.time.Clock import kotlin.time.Duration.Companion.days +import kotlin.time.Instant /** * Test harness for DocumentStore and related types. diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/presentment/digitalCredentialsPresentmentTest.kt b/multipaz/src/commonTest/kotlin/org/multipaz/presentment/model/digitalCredentialsPresentmentTest.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/presentment/digitalCredentialsPresentmentTest.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/presentment/model/digitalCredentialsPresentmentTest.kt index cfe3f498e..e36df97f9 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/presentment/digitalCredentialsPresentmentTest.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/presentment/model/digitalCredentialsPresentmentTest.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.presentment +package org.multipaz.presentment.model import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.test.runTest @@ -25,8 +25,9 @@ import org.multipaz.crypto.X509CertChain import org.multipaz.document.Document import org.multipaz.mdoc.response.DeviceResponseParser import org.multipaz.mdoc.util.MdocUtil -import org.multipaz.models.openid.OpenID4VP +import org.multipaz.openid.OpenID4VP import org.multipaz.presentment.CredentialPresentmentData +import org.multipaz.presentment.model.DocumentStoreTestHarness import org.multipaz.request.Requester import org.multipaz.sdjwt.SdJwtKb import org.multipaz.storage.ephemeral.EphemeralStorage diff --git a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/provisioning/ProvisioningModelTest.kt b/multipaz/src/commonTest/kotlin/org/multipaz/provisioning/ProvisioningModelTest.kt similarity index 99% rename from multipaz-models/src/commonTest/kotlin/org/multipaz/models/provisioning/ProvisioningModelTest.kt rename to multipaz/src/commonTest/kotlin/org/multipaz/provisioning/ProvisioningModelTest.kt index 182ca70ea..ca43eebd4 100644 --- a/multipaz-models/src/commonTest/kotlin/org/multipaz/models/provisioning/ProvisioningModelTest.kt +++ b/multipaz/src/commonTest/kotlin/org/multipaz/provisioning/ProvisioningModelTest.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.provisioning +package org.multipaz.provisioning import io.ktor.client.HttpClient import io.ktor.client.engine.mock.MockEngine diff --git a/multipaz-models/src/iosMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.ios.kt b/multipaz/src/iosMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.ios.kt similarity index 96% rename from multipaz-models/src/iosMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.ios.kt rename to multipaz/src/iosMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.ios.kt index 730fd3d25..623139953 100644 --- a/multipaz-models/src/iosMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.ios.kt +++ b/multipaz/src/iosMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.ios.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.digitalcredentials +package org.multipaz.digitalcredentials import kotlinx.serialization.json.JsonObject import org.multipaz.document.DocumentStore diff --git a/multipaz/src/javaSharedMain/kotlin/org/multipaz/crypto/EcPrivateKeyJvm.kt b/multipaz/src/javaSharedMain/kotlin/org/multipaz/crypto/EcPrivateKeyJvm.kt index cc445e74a..59390b1b0 100644 --- a/multipaz/src/javaSharedMain/kotlin/org/multipaz/crypto/EcPrivateKeyJvm.kt +++ b/multipaz/src/javaSharedMain/kotlin/org/multipaz/crypto/EcPrivateKeyJvm.kt @@ -7,15 +7,10 @@ import java.security.KeyFactory import java.security.PrivateKey import java.security.PublicKey import java.security.interfaces.ECPrivateKey -import java.security.interfaces.EdECPrivateKey -import java.security.interfaces.XECPrivateKey import java.security.spec.ECGenParameterSpec import java.security.spec.ECParameterSpec import java.security.spec.ECPrivateKeySpec -import java.security.spec.EdECPrivateKeySpec -import java.security.spec.NamedParameterSpec import java.security.spec.PKCS8EncodedKeySpec -import java.security.spec.XECPrivateKeySpec fun PrivateKey.toEcPrivateKey(publicKey: PublicKey, curve: EcCurve): EcPrivateKey = when (curve) { @@ -34,13 +29,13 @@ fun PrivateKey.toEcPrivateKey(publicKey: PublicKey, curve: EcCurve): EcPrivateKe EcCurve.ED25519, EcCurve.ED448 -> { val pub = publicKey.toEcPublicKey(curve) as EcPublicKeyOkp - val d = getDerEncodedPrivateKeyFromPrivateKeyInfo((this as EdECPrivateKey).encoded) + val d = getDerEncodedPrivateKeyFromPrivateKeyInfo(encoded) EcPrivateKeyOkp(curve, d, pub.x) } EcCurve.X25519, EcCurve.X448 -> { val pub = publicKey.toEcPublicKey(curve) as EcPublicKeyOkp - val d = getDerEncodedPrivateKeyFromPrivateKeyInfo((this as XECPrivateKey).encoded) + val d = getDerEncodedPrivateKeyFromPrivateKeyInfo(encoded) EcPrivateKeyOkp(curve, d, pub.x) } } @@ -77,6 +72,6 @@ val EcPrivateKey.javaPrivateKey: PrivateKey val spec = PKCS8EncodedKeySpec(generatePrivateKeyInfo(OID.X448.oid, this.d)) KeyFactory.getInstance("X448").generatePrivate(spec) } - } + } \ No newline at end of file diff --git a/multipaz-models/src/jvmMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.jvm.kt b/multipaz/src/jvmMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.jvm.kt similarity index 96% rename from multipaz-models/src/jvmMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.jvm.kt rename to multipaz/src/jvmMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.jvm.kt index b0543e986..0dea54bd2 100644 --- a/multipaz-models/src/jvmMain/kotlin/org/multipaz/models/digitalcredentials/DigitalCredentials.jvm.kt +++ b/multipaz/src/jvmMain/kotlin/org/multipaz/digitalcredentials/DigitalCredentials.jvm.kt @@ -1,4 +1,4 @@ -package org.multipaz.models.digitalcredentials +package org.multipaz.digitalcredentials import kotlinx.serialization.json.JsonObject import org.multipaz.document.DocumentStore diff --git a/samples/testapp/build.gradle.kts b/samples/testapp/build.gradle.kts index 83052e066..58cb8dc14 100644 --- a/samples/testapp/build.gradle.kts +++ b/samples/testapp/build.gradle.kts @@ -101,7 +101,6 @@ kotlin { implementation(project(":multipaz")) implementation(project(":multipaz-longfellow")) - implementation(project(":multipaz-models")) implementation(project(":multipaz-doctypes")) implementation(project(":multipaz-compose")) implementation(libs.kotlinx.datetime) diff --git a/samples/testapp/src/androidMain/kotlin/org/multipaz/testapp/PlatformAndroid.kt b/samples/testapp/src/androidMain/kotlin/org/multipaz/testapp/PlatformAndroid.kt index a0c3cb640..0113de4dc 100644 --- a/samples/testapp/src/androidMain/kotlin/org/multipaz/testapp/PlatformAndroid.kt +++ b/samples/testapp/src/androidMain/kotlin/org/multipaz/testapp/PlatformAndroid.kt @@ -13,7 +13,7 @@ import multipazproject.samples.testapp.generated.resources.app_icon import multipazproject.samples.testapp.generated.resources.app_icon_red import org.bouncycastle.jce.provider.BouncyCastleProvider import org.multipaz.compose.notifications.NotificationManagerAndroid -import org.multipaz.models.digitalcredentials.getAppOrigin +import org.multipaz.digitalcredentials.getAppOrigin import org.multipaz.nfc.NfcTagReader import org.multipaz.prompt.AndroidPromptModel import org.multipaz.prompt.PromptModel diff --git a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/App.kt b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/App.kt index a830d2ecc..974d2815b 100644 --- a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/App.kt +++ b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/App.kt @@ -40,8 +40,8 @@ import coil3.ImageLoader import coil3.compose.LocalPlatformContext import coil3.network.ktor2.KtorNetworkFetcherFactory import org.multipaz.testapp.ui.AppTheme -import org.multipaz.models.digitalcredentials.DigitalCredentials -import org.multipaz.models.presentment.PresentmentModel +import org.multipaz.digitalcredentials.DigitalCredentials +import org.multipaz.presentment.model.PresentmentModel import org.multipaz.asn1.ASN1Integer import org.multipaz.cbor.Cbor import org.multipaz.crypto.Crypto @@ -125,9 +125,9 @@ import org.multipaz.documenttype.knowntypes.Loyalty import org.multipaz.documenttype.knowntypes.IDPass import org.multipaz.mdoc.zkp.ZkSystemRepository import org.multipaz.mdoc.zkp.longfellow.LongfellowZkSystem -import org.multipaz.models.presentment.PresentmentSource -import org.multipaz.models.presentment.SimplePresentmentSource -import org.multipaz.models.provisioning.ProvisioningModel +import org.multipaz.presentment.model.PresentmentSource +import org.multipaz.presentment.model.SimplePresentmentSource +import org.multipaz.provisioning.ProvisioningModel import org.multipaz.nfc.NfcTagReader import org.multipaz.prompt.PromptModel import org.multipaz.provisioning.Display diff --git a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/TestAppSettingsModel.kt b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/TestAppSettingsModel.kt index 4030bb00c..e09a0b45d 100644 --- a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/TestAppSettingsModel.kt +++ b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/TestAppSettingsModel.kt @@ -14,7 +14,7 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import kotlinx.io.bytestring.ByteString import org.multipaz.cbor.buildCborArray -import org.multipaz.models.digitalcredentials.DigitalCredentials +import org.multipaz.digitalcredentials.DigitalCredentials import kotlin.Boolean /** diff --git a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/ConsentPromptScreen.kt b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/ConsentPromptScreen.kt index cb4a1aff8..0021127d3 100644 --- a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/ConsentPromptScreen.kt +++ b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/ConsentPromptScreen.kt @@ -55,9 +55,9 @@ import org.multipaz.documenttype.DocumentTypeRepository import org.multipaz.documenttype.knowntypes.DrivingLicense import org.multipaz.documenttype.knowntypes.PhotoID import org.multipaz.mdoc.util.MdocUtil -import org.multipaz.models.openid.dcql.DcqlQuery -import org.multipaz.models.openid.dcql.DcqlResponse -import org.multipaz.models.presentment.SimplePresentmentSource +import org.multipaz.openid.dcql.DcqlQuery +import org.multipaz.openid.dcql.DcqlResponse +import org.multipaz.presentment.model.SimplePresentmentSource import org.multipaz.request.Requester import org.multipaz.sdjwt.SdJwt import org.multipaz.sdjwt.credential.KeyBoundSdJwtVcCredential diff --git a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/DcRequestScreen.kt b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/DcRequestScreen.kt index 9ba5b8328..648f966bb 100644 --- a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/DcRequestScreen.kt +++ b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/DcRequestScreen.kt @@ -27,16 +27,16 @@ import org.multipaz.crypto.SigningKey import org.multipaz.documenttype.DocumentCannedRequest import org.multipaz.documenttype.DocumentType import org.multipaz.mdoc.zkp.ZkSystemRepository -import org.multipaz.models.digitalcredentials.DigitalCredentials -import org.multipaz.models.verification.MdocApiDcResponse -import org.multipaz.models.verification.OpenID4VPDcResponse +import org.multipaz.digitalcredentials.DigitalCredentials +import org.multipaz.verification.MdocApiDcResponse +import org.multipaz.verification.OpenID4VPDcResponse import org.multipaz.request.JsonRequestedClaim import org.multipaz.request.MdocRequestedClaim import org.multipaz.testapp.App import org.multipaz.testapp.TestAppUtils import org.multipaz.testapp.getAppToAppOrigin import org.multipaz.util.Logger -import org.multipaz.models.verification.VerificationUtil +import org.multipaz.verification.VerificationUtil import org.multipaz.testapp.ShowResponseMetadata import kotlin.random.Random import kotlin.time.Clock diff --git a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/IsoMdocProximitySharingScreen.kt b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/IsoMdocProximitySharingScreen.kt index 3a732bd21..57921fc5c 100644 --- a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/IsoMdocProximitySharingScreen.kt +++ b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/IsoMdocProximitySharingScreen.kt @@ -29,8 +29,8 @@ import org.multipaz.mdoc.connectionmethod.MdocConnectionMethod import org.multipaz.mdoc.connectionmethod.MdocConnectionMethodBle import org.multipaz.mdoc.connectionmethod.MdocConnectionMethodNfc import org.multipaz.mdoc.transport.MdocTransportOptions -import org.multipaz.models.presentment.PresentmentModel -import org.multipaz.models.presentment.PresentmentSource +import org.multipaz.presentment.model.PresentmentModel +import org.multipaz.presentment.model.PresentmentSource import org.multipaz.prompt.PromptModel import org.multipaz.testapp.TestAppSettingsModel import org.multipaz.testapp.platformAppIcon diff --git a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/SettingsScreen.kt b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/SettingsScreen.kt index 77c3d21c9..15ab8c3e1 100644 --- a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/SettingsScreen.kt +++ b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/SettingsScreen.kt @@ -20,18 +20,13 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.IO -import kotlinx.coroutines.launch import org.multipaz.crypto.EcCurve import org.multipaz.testapp.App import org.multipaz.testapp.Platform import org.multipaz.testapp.TestAppSettingsModel import org.multipaz.testapp.platform import org.multipaz.compose.cards.WarningCard -import org.multipaz.models.digitalcredentials.DigitalCredentials -import org.multipaz.testapp.platformCryptoInit +import org.multipaz.digitalcredentials.DigitalCredentials import org.multipaz.testapp.platformRestartApp @Composable diff --git a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/ShowResponse.kt b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/ShowResponse.kt index 5a54b41f6..127097d75 100644 --- a/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/ShowResponse.kt +++ b/samples/testapp/src/commonMain/kotlin/org/multipaz/testapp/ui/ShowResponse.kt @@ -9,13 +9,9 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.verticalScroll import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider @@ -33,9 +29,7 @@ import kotlinx.coroutines.launch import kotlinx.io.bytestring.ByteString import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.jsonPrimitive -import org.multipaz.cbor.Cbor import org.multipaz.cbor.DataItem -import org.multipaz.cbor.DiagnosticOption import org.multipaz.claim.organizeByNamespace import org.multipaz.compose.datetime.formattedDateTime import org.multipaz.compose.decodeImage @@ -47,10 +41,10 @@ import org.multipaz.mdoc.zkp.ZkSystemRepository import org.multipaz.trustmanagement.TrustManager import org.multipaz.util.Logger import org.multipaz.util.fromBase64Url -import org.multipaz.models.verification.JsonVerifiedPresentation -import org.multipaz.models.verification.MdocVerifiedPresentation -import org.multipaz.models.verification.VerificationUtil.verifyMdocDeviceResponse -import org.multipaz.models.verification.VerificationUtil.verifyOpenID4VPResponse +import org.multipaz.verification.JsonVerifiedPresentation +import org.multipaz.verification.MdocVerifiedPresentation +import org.multipaz.verification.VerificationUtil.verifyMdocDeviceResponse +import org.multipaz.verification.VerificationUtil.verifyOpenID4VPResponse import org.multipaz.testapp.ShowResponseMetadata import kotlin.time.Clock import kotlin.time.Duration diff --git a/settings.gradle.kts b/settings.gradle.kts index 8a737b71e..5e5c63cf2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -57,12 +57,11 @@ include(":multipaz") include(":multipaz:SwiftBridge") include(":multipaz-doctypes") include(":multipaz-android-legacy") -include(":multipaz-models") -include(":multipaz-models:matcherTest") include(":multipaz-csa") include(":multipaz-android-legacy") include(":multipaz-longfellow") include(":multipazctl") +include(":multipaz:matcherTest") include(":multipaz-backend-server") include(":multipaz-compose") include(":multipaz-openid4vci-server") diff --git a/xcframework/build.gradle.kts b/xcframework/build.gradle.kts index 11d9e0351..6723e9a5a 100644 --- a/xcframework/build.gradle.kts +++ b/xcframework/build.gradle.kts @@ -20,7 +20,6 @@ kotlin { it.binaries.framework { export(project(":multipaz")) export(project(":multipaz-doctypes")) - export(project(":multipaz-models")) export(project(":multipaz-longfellow")) export(libs.kotlinx.io.bytestring) export(libs.kotlinx.io.core) @@ -48,7 +47,6 @@ kotlin { dependencies { api(project(":multipaz")) api(project(":multipaz-doctypes")) - api(project(":multipaz-models")) api(project(":multipaz-longfellow")) api(libs.kotlinx.io.bytestring) api(libs.kotlinx.io.core)