About • Development • Documentation • Dependencies • Support • Contribute • Contributors • Licensing
This repository contains the source code of VerificaC19, the Italian customization of the EU Digital COVID Certificate Verifier App for the iOS Operating System. The repository is forked from the official EU Digital COVID Certificate Verifier App - iOS.
The DGC Verifier Apps are responsible for scanning and verifying DCCs 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. The Italian version adds some medical rules to the validation of the DCCs, defined by rules downloaded from national backend servers.
You can help the localization of this project by making contributions to the *.lproj folders inside /Verifier/Resources/.
- 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 endpoint:
https://get.dgc.gov.it/v1/dgc/
to retrieve kids, public keys, settings and medical rules for prod configuration, - To get QR Codes for testing, you might want to check out
https://dgc.a-sit.at/ehn/testsuite
.
- This App talks to the endpoint:
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.
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+
The following dependencies are used in the project by the verifier app and the core app and are imported as Swift Packages:
- SwiftDGC. Eurpean core library that contains business logic to decode data from QR code payload and performs technical validations (i.e. correct signature verification, signature expiration verification, correct payload format etc).
- Alamofire. Library used for networking.
- JSONSchema. Library used by core module to validate DCC payload JSON schema.
- SwiftCBOR. Library used by core module for CBOR specification implementation.
- SwiftyJSON. Library used by core module to translate data from JSON format. All listed dependencies are already included in the official EU Digital COVID Certificate Verifier App for iOS. No new dependencies have been included in the Italian customization of the app.
The following channels are available for discussions, feedback, and support requests:
Type | Channel |
---|---|
Issues |
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.
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.
See the NOTICE for all copyright and licensing details.
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.