Secure QRScanner
class SecureQRScanner(headerPrefixes: List<String> = listOf(
"mDLQR:v2?",
"mDLQR%3Av2?"
), assemblyTimeoutMs: Long, maxSessionAgeMs: Long, trustedTypeMetadataRegistries: List<String> = emptyList(), metadataResolver: SecureQRPayloadMetadataResolver = SecureQRPayloadMetadataResolver())
Thread-safe streaming QR assembler for SecureQR v2 frames.
Accumulates frames by session id (id=...).
Assembles once all frames 0..m-1 are present.
Strips last-frame padding (p=...).
Decodes v2 transport payload -> SD-JWT combined presentation.
Evicts old sessions (maxSessionAgeMs).
If you still want "soft assemble after timeout", set assemblyTimeoutMs> 0.
Functions
Link copied to clipboard
Link copied to clipboard
Alias name matching your iOS API style.
Link copied to clipboard
suspend fun processSecureFrameWithMetadata(frame: String, language: String = Locale.getDefault().toLanguageTag(), registries: List<String> = trustedTypeMetadataRegistries): SecureQRFrameResult
Alias name matching your iOS API style.
Link copied to clipboard
suspend fun resolvePayloadMetadata(payload: String, language: String = Locale.getDefault().toLanguageTag(), registries: List<String> = trustedTypeMetadataRegistries): SecureQRPayloadMetadata?
Link copied to clipboard
Accepts a single scanned QR string.
Link copied to clipboard
suspend fun scanFrameWithMetadata(frame: String, language: String = Locale.getDefault().toLanguageTag(), registries: List<String> = trustedTypeMetadataRegistries): SecureQRFrameResult
Accepts a scanned QR string and, when complete, resolves the SD-JWT VCT metadata display name for language.