Repository for the dgca verifier iOS app.

Overview

EU Digital COVID Certificate Verifier App - iOS

AboutDevelopmentDocumentationSupportContributeContributorsLicensing

About

This repository contains the source code of the EU Digital COVID Certificate Verifier App for iOS.

The DGC Verifier Apps are responsible for scanning and verifying DGCs using public keys from national backend servers. Offline verification is supported, if the latest public keys are present in the app's key store. Consequently, once up-to-date keys have been downloaded, the verification works without active internet connection.

Translators 💬

You can help the localization of this project by making contributions to the /Localization folder.

Development

Prerequisites

  • You need a Mac to run Xcode.
  • Xcode 12.5+ is used for our builds. The OS requirement is macOS 11.0+.
  • To install development apps on physical iPhones, you need an Apple Developer account.
  • Service Endpoints:
    • This App talks to the pubkey endpoint: https://dgca-verifier-service.cfapps.eu10.hana.ondemand.com,
    • Or anotherone specified as serverURI in DGCAVerifier/Services/GatewayConnection.swift.
    • To get QR Codes for testing, you might want to check out https://dgc.a-sit.at/ehn/testsuite.

Build

Whether you cloned or downloaded the 'zipped' sources you will either find the sources in the chosen checkout-directory or get a zip file with the source code, which you can expand to a folder of your choice.

Xcode based build

Important Info: SPM and the SwiftDGC core module

  • Depending on the development status, this module might be either linked locally or via github URL.
  • If it's linked locally, you should clone both repos into the same folder:
  • <project folder>
    • dgca-app-core-ios
    • dgca-verifier-app-ios
  • Otherwise it will be pulled by Xcode like all other SPM modules.
    • Make sure the core module is up to date by clicking File > Swift Packages > Update Packages.

Build steps

  • Set the development team to any Apple Developer Account
  • Give the project a unique bundle identifier
  • Install swift package manager requirements through Xcode 12.5+
  • Build and run the project through Xcode 12.5+

Documentation

  • TODO: Link to documentation

Support and feedback

The following channels are available for discussions, feedback, and support requests:

Type Channel
Issues
Other requests

How to contribute

Contribution and feedback is encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our Contribution Guidelines. By participating in this project, you agree to abide by its Code of Conduct at all times.

Contributors

Our commitment to open source means that we are enabling -in fact encouraging- all interested parties to contribute and become part of its developer community.

Licensing

Copyright (C) 2021 T-Systems International GmbH and all other contributors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the LICENSE for the specific language governing permissions and limitations under the License.

Comments
  • By omitting the name a QR Code with invalid schema is generated

    By omitting the name a QR Code with invalid schema is generated

    QR_invalid_Schema

    Describe the bug

    If the name is omitted (it is NULL value) the issuer app generates a QR-Code with an invalid Schema. Das kann von iOS nicht eingelesen werden, während Android da

    A sample QR Code and the data to generate it is attached,

    Expected behaviour

    Steps to reproduce the issue

    Technical details:

    Windows, Chrome

    Possible Fix

    Additional context

    bug 
    opened by RalicaY 15
  • "In case of a failed verification (RED), the app should only display the reason for the fail, including details such as the specific contents or technical details of the certificate that are preventing the successful verification

    Describe the bug

    Despite a failed verification, the verifier app shows the certificate data set, additionally to the reason for failure.

    Expected behaviour

    In case of a failed verification (RED), the app should only display the reason for the fail including details such as the specific contents or technical details of the certificate that are preventing the successful verification.

    Steps to reproduce the issue

    1. Open verifier app;
    2. Scan a QR-Code for an invalid certificate.

    Technical details

    iPhone 8 plus v. Lutz, Model MQ8P2ZD/A, iOS 14.4

    Possible Fix

    Additional context

    bug further input needed 
    opened by RalicaY 7
  • [iOS Verifier App] No Interactive Inquiry (Granting Consent) for Unknown Issuer Credentials

    [iOS Verifier App] No Interactive Inquiry (Granting Consent) for Unknown Issuer Credentials

    Describe the bug

    When we scan verifiable credentials. which were signed by unknown issuers (such that have not yet been onboarded on the gateway) no interactive inquiry is shown as to whether the user wants to add the issuer in the app's local issuers list. Furthermore, a "Bar-Code Error" Pop up window is shown.

    Expected behaviour

    An interactive inquiry is shown and the user is given the opportunity to grant or deny consent.

    Technical details

    Verifier App 1.3.1.1(33) Hash & iOS Verifier 1.3.1 (31) Bloom dx-apr-22-e IMG_20220428_111223(1)

    bug 2nd Prio - Medium 
    opened by RalicaY 6
  • [iOS] Broken rule should yield

    [iOS] Broken rule should yield "open", not "false"

    Description

    When a rule is broken (e.g. features an undefined variable), the verifier app on iOS yields a failed status for this rule.

    Expected behaviour

    The status of the rule should be OPEN (as it is in the Android version)

    Steps to reproduce the issue

    This can be reproduced scanning a valid vaccination DCC and verifying for Switzerland. VR-CH-0004 and VR-CH-0006 contain a reference to "var":"external.validationClockAtStartOfDay" which does not exist.

    Technical details

    Reproduced with ACC backend

    bug 
    opened by chrloch 6
  • [iOS]  Signing certifiate expiration date time does not supercede the expiration date time of the green certificate

    [iOS] Signing certifiate expiration date time does not supercede the expiration date time of the green certificate

    Describe the bug

    In order to check, that when the signing certificate expiration datetime supersedes the expiration datetime in the Green certificate, the app returns INVALID we have created the following QR-Code with chronologically valid certificate but with an expired DSC Certificate.

    Attached JSON file and QR Code.

    Nevertheless, scanning this QR Code with the Verifier app returns VALID.

    Expected behaviour

    Expected is a RED screen saying the Certificate is INVALID.

    Steps to reproduce the issue

    Technical details

    Verifier 1.1.5-tst signing_expiration_supercedes_certificate_expiration signing_expiration_supercedes_certificate_expiration_json

    iPhone 8 plus v. Lutz, iOS 14.4

    Possible Fix

    Additional context

    bug 
    opened by RalicaY 6
  • [iOS] Test Rule remains invisible to iOS Verifier App

    [iOS] Test Rule remains invisible to iOS Verifier App

    Describe the bug

    Given the following VAC Certificate created with an imaginary non-existing Vaccine, scanned for country "Belgium" the iOS Verifier says "Valid" while the Android Verifier sees a rule.

    Expected behaviour

    The expectation is that the iOS Verifier App would also show orange because the rule has failed.

    Steps to reproduce the issue

    Technical details

    iOS Verifier App 1.1.5-tst Liem_Vaccine iOS_erfundende_Vaccine

    Possible Fix

    Additional context

    bug 
    opened by RalicaY 6
  • [iOS verifier] qr-code with invalid payload leads to white page

    [iOS verifier] qr-code with invalid payload leads to white page

    Describe the bug

    Reading a qr-code with invalid payload show the Error-Message: "Barcode-Fehler. Etwas ist schief gelaufen" as popup window same qr-code can successful read by android verifierApp

    Expected behaviour

    the qr-code must be successful read, and show the error: Invald. Cryptiographic signature invalid" insiede VerifierApp

    Steps to reproduce the issue

    1. open VerifierApp
    2. scan the code

    Technical details

    iPhone 7, IOS 15.3.1 VerifierApp 1.3.1(4) MISSING_NAM

    bug 2nd Prio - Medium 
    opened by michawol 5
  • feat: Upgrade for v0.0.4

    feat: Upgrade for v0.0.4

    Minor tweak (prefix is HC1: instead of HC1 to preserve privacy / leaking to google & siri.

    Brings it in line with this mornging version of v.0.0.4 of the spec.

    enhancement 
    opened by dirkx 5
  • [iOS Verifier App] Verifiable Credentials with Matching KID But False Public Key Data Are Accepted

    [iOS Verifier App] Verifiable Credentials with Matching KID But False Public Key Data Are Accepted

    Describe the bug

    We scanned verifiable clredentials with matching KID but manipulated public key data so that the signature was no more valid for the issuer with this KID. The app scanned these without any error.

    Expected behaviour

    The app should recognize that the credential has an invalid signature. 81d947d2-d79d-40c9-be8c-633b965bfe06(2) Screenshot from 2022-04-28 09-34-37

    Technical details

    Verifier App 1.3.1.1(33) Hash & iOS Verifier 1.3.1 (31) Bloom

    bug 3rd Prio - Low 
    opened by RalicaY 4
  • [iOS Verifier App]Nullable Values in Verifieable Credentials Lead To Unscannable Code

    [iOS Verifier App]Nullable Values in Verifieable Credentials Lead To Unscannable Code

    Describe the bug

    The following valid code with null-values in optional fields does not get scanned by the verifier app. Instead a pop-up window "Bar-Code Error" appears (see attached photo).

    Attention: it is a valid code but with null values.

    Expected behaviour

    The app should be able to scan the code.

    Technical Details:

    Verifier App 1.3.1.1(33) Hash & iOS Verifier 1.3.1 (31) Bloom nullable_values Uploading IMG_20220428_111223(1).jpg…

    bug 2nd Prio - Medium 
    opened by RalicaY 4
  • [iOS Verifier App] App Crash when Device is Offline

    [iOS Verifier App] App Crash when Device is Offline

    Describe the bug

    1. If the WLAN in device setting is switched off (that is, there is no internet connection on device) than the app crashes when the "RELOAD" button is pressed.

    2. If the WLAN in device setting is left switched off for > 24 hr (that is, there is no internet connection on device for > 24 hr) than the app crashes at starting (the app cannot be started at all).

    Technical details

    iOS Verifier 1.3.1 (4) iPhone 8 plus v. Lutz, iOS 14.4

    bug 1st Prio - High 
    opened by RalicaY 4
  • [ iOS Verifier ] - Test certificates always scanned with limited validation - failed for time intervall (48h) - TR-DE-0002

    [ iOS Verifier ] - Test certificates always scanned with limited validation - failed for time intervall (48h) - TR-DE-0002

    Verifier 1.3.1(44)

    image Test certificate from today 10 am failed for TR-DE-0002 https://distribution-cff4f7147260.dcc-rules.de/rules/DE/124a2c2e0b8aeddbad8df2cb6852060c23725a32eb11d65abb4eef7da19d0f78

    image

    bug 2nd Prio - Medium 
    opened by kerstin-oppermann-tsi 0
  • Fix nfc

    Fix nfc

    The reference to the NFCHelper was being lost, making the NFC read never resolve. The code has been moved to the ViewController, which has a strong reference. I also improved the Text record type parsing, taking into account the payload locale and encoding flags, accepting only text record that begin with HC1. This allows for tags with multiple records and only returning the one containing a DCC.

    opened by craftbyte 0
Releases(1.3.0)
  • 1.3.0(Feb 28, 2022)

    What's Changed

    • fixed section type by @alexchornyi in https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/pull/107
    • release context by @alexchornyi in https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/pull/108
    • fixed contex by @alexchornyi in https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/pull/109
    • Fixed contex json for test env by @alexchornyi in https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/pull/110
    • docs: Add usage note by @daniel-eder in https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/pull/98
    • Feature/development verifier by @ihorkhomyak in https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/pull/123
    • Feature/dev revocation by @PaulBallmann in https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/pull/129

    New Contributors

    • @ihorkhomyak made their first contribution in https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/pull/123

    Full Changelog: https://github.com/eu-digital-green-certificates/dgca-verifier-app-ios/compare/1.1.6...1.3.0

    Source code(tar.gz)
    Source code(zip)
  • 1.1.6(Jul 16, 2021)

  • 1.0.5.1(Jun 24, 2021)

  • 1.0.4(Jun 11, 2021)

  • 1.0.1(May 20, 2021)

Owner
Official GitHub Organization of the EU Digital COVID Certificates (EUDCC) project, previously known as the EU Digital Green Certificates (DGC).
null
In this repository I've learned how to use the layout as well as alignment and constraints.

Auto Layout Our Goal At the moment, our app only looks good on the canvas dimension that we’ve selected. If you run the app on screens with different

Pedro Couventaris Daspett 1 Apr 23, 2022
VidyoPlatform Basic CustomLayouts Reference App for iOS (Swift)VidyoPlatform Basic CustomLayouts Reference App for iOS (Swift)

VidyoPlatform Basic CustomLayouts Reference App for iOS (Swift) VidyoPlatform reference application highlighting how to integrate video chat into a na

Taras Melko 0 Nov 19, 2021
IOS-PokemonQuizApp - Assignment to make a responsive iOS app. App has to connect with an external API

iOS-PokemonQuizApp Assignment to make a responsive iOS app. App has to connect with an external API. The Project The idea of the project is to make a

BennyDB 0 Jan 9, 2022
Ios-quizzer - The app implements basic features of a quiz app using MVC pattern

Quizzer App The app implements basic features of a quiz app using MVC pattern.

Stefan 2 May 10, 2022
WHAT WILL YOU LEARN? Onboarding Screen with Page Tab View, state of the app with the new App Storage

WHAT WILL YOU LEARN? Onboarding Screen with Page Tab View, state of the app with the new App Storage Onboarding or a Home screen Understand how the new App Life Cycle works Link View 
 Group Box View Disclosure View Dynamically List View with a loop

Ghullam Abbas 5 Oct 17, 2022
Flixtor-iOS - iOS streaming app inspired by Netflix that allows you to watch any film and series

Flixtor-iOS iOS streaming app inspired by Netflix that allows you to watch any f

Kevin Liu 0 Jan 14, 2022
Demo App for Picture-in-Picture of Arbitrary UIView in iOS

> 日本語 UIPiPDemo This is a demo app for displaying an arbitrary UIView in iOS using picture-in-picture. It can be used to display information that chan

Akihiro Urushihara 61 Sep 26, 2022
iOS App that helps you breath properly.

Breathing App iOS App that helps you breath properly. I created this iOS app in my Intro to iOS Develepmont class at Hunter College. I am not a profes

Kevin Salamanca 0 Dec 24, 2021
Random-Colors-iOS - Random colors generator app with auto layout

Random Colors Random colors generator app with auto layout Demo demo.mp4 Depende

Adem Özcan 8 Mar 23, 2022
iOS app for Emoncms

Emoncms for iOS Emoncms for iOS is an app that allows you to connect to an Emoncms instance. This can either be through the official emoncms.org, thro

Emoncms 17 Sep 26, 2022
ARSpaceStation - A minimal AR iOS App that shows the International Space Station (ISS) in real scale

AR Space Station This is a minimal AR iOS app that shows the International Space

Yasuhito Nagatomo 15 Dec 4, 2022
Tinylog is a minimal TODO App for iOS (iPhone/iPad).

Tinylog-iOS Tinylog is a minimal TODO App for iOS (iPhone/iPad). Download on the App Store Setup $ git clone https://github.com/sger/Tinylog-iOS $ cd

Binary Level 32 Sep 28, 2022
LinkedIn-Profile - UI of Android LinkedIn App Profile Page in iOS SwiftUI

LinkedIn-Profile UI of Android LinkedIn App Profile Page in iOS SwiftUI Sample I

null 0 Feb 4, 2022
SwiftLanguageWeather-master - Swift Language Weather is an iOS weather app developed in Swift 4

Swift Language Weather SwiftWeather has renamed to Swift Language Weather. Becau

Kushal Shingote 1 Feb 5, 2022
GitHawk is the second-highest rated iOS app for GitHub

GitHawk is the second-highest rated iOS app for GitHub

GitHawk 2.8k Dec 23, 2022
An iOS app that automatically capitalizes the title of your essay. Supports MLA, APA, and Chicago styles.

Title Capitalizr for iOS An iOS app that automatically capitalizes the title of your essay. Supports MLA, APA, AP, and Chicago styles. "You probably w

John Seong 2 Jun 10, 2022
App desenvolvido do zero em Swift pelo time iOS na formação da Digital House

App desenvolvido do zero em Swift pelo time iOS na formação da Digital House. O App tem por objetivo mostrar o filme da API que deu match de acordo com a escolha do usuário após clicar no botão Roletar. Foi usado o padrão de projeto MVVM.

Raul F. Andrade 0 Nov 21, 2022
RMIT SSET Contact List iOS app!

RMIT SSET Contact List "The Contact List is Long, The Circle is Small!" ?? Description This is an iOS application, inspired from the traditional phone

Tom Huynh 3 Nov 17, 2022
This app demonstrates iOS-development techniques.

CatFancy Introduction CatFancy is an iOS app that demonstrates iOS-development techniques. Users can browse breeds of cats with images from various so

Josh Adams 4 Nov 29, 2022