diff --git a/.github/README.adoc b/.github/README.adoc new file mode 100644 index 0000000..fdd1c2b --- /dev/null +++ b/.github/README.adoc @@ -0,0 +1,277 @@ +//// +Execute `make readme` after editing /README.adoc +//// +:toc-title: Table of Contents +:toc: +:toclevels: 2 +:source-highlighter: prettify + +:testdir: ../../Tests +:integrationtestdir: ../../IntegrationTests +:sourcedir: ../../Sources + += OpenHealthCardKit + +Controlling/Use-case framework for accessing smart cards of the telematic infrastructure. + +== Introduction + +The OpenHealthCardKit module is intended for reference purposes +when implementing a system that performs the communication between an iOS based mobile device +and a German Health Card (elektronische Gesundheitskarte) using an NFC, Blue Tooth oder USB interface. + +This document describes the functionalitiy and structure of OpenHealthCardKit. +== API Documentation + +Generated API docs are available at https://gematik.github.io/ref-OpenHealthCardKit. +== Getting Started + +OpenHealthCardKit requires Swift 5.1. + +=== Setup for integration + +- **Swift Package Manager:** Put this in your `Package.swift`: + + `.package(url: "https://github.com/gematik/ref-OpenHealthCardKit", from: "5.3.0"),` + +- **Carthage:** Put this in your `Cartfile`: + + github "gematik/ref-openHealthCardKit" ~> 5.0 + +=== Setup for development + +Run `$ make setup` to start developing locally. This will make sure all the dependencies are put in place and the Xcode-project will be generated and/or overwritten. + +Dependencies are a mix of SPM (Swift Package Manager) and Carthage right now. The Xcode-project is generated using `xcodegen`. +The more complex build configuration(s) is done with the help of Fastlane. See the `./fastlane` directory for full setup. + +== Overview + +OpenHealthCardKit bundles submodules that provide the functionality +necessary for accessing and interacting with German Health Cards via a mobile iOS device. + +OpenHealthCardKit consists of the submodules + +- CardReaderProviderApi +- HealthCardAccess +- HealthCardControl +- NFCCardReaderProvider + +As a reference for each submodule see also the `IntegrationTests`. +Also see a https://github.com/gematik/ref-OpenHealthCardApp-iOS[Demo App] on GitHub using this framework. +[#CardReaderProviderApi] +=== CardReaderProviderApi + +(Smart)CardReader protocols for interacting with `HealthCardAccess`. +[#HealthCardAccess] +=== HealthCardAccess +This library contains the classes for cards, commands, card file systems and error handling. + +==== HealthCardAccess API + +The HealthCardAccessKit API Structure contains the `HealthCard` class representing all supported card types, +the `Commands` and `Responses` groups with all supported commands and responses for health cards, +the `CardObjects` group with the possible objects on a health cards +and the `Operation` group for cascading and executing commands on health cards. + +===== Health Cards +The class `HealthCard` represents the potential types of health cards by storing a `HealthCardStatus` property which in +case of being _valid_ by itself stores a `HealthCardPropertyType` which at the time of writing is represented by either +one of the following + +- egk ("elektronische Gesundheitskarte") +- hba ("Heilberufeausweis") +- smcb ("Security Module Card Typ B"). + +The `HealthCardPropertyType` by itself stores the `CardGeneration` (G1, G1P, G2, G2.1) as well. + +Furthermore the `HealthCard` object contains the physical card from a card reader and the current card channel. + +===== Commands + +The `Commands` groups contains all available `HealthCardCommand` objects for health cards through the `HealthCardCommandBuilder`. + + +==== Code Samples + +===== Create a command +The design of this API follows the link:https://en.wikipedia.org/wiki/Command_pattern[command design pattern] +leveraging Swift's https://developer.apple.com/documentation/combine/[Combine Framework]. +The command objects are designed to fulfil the use-cases described in the link:https://www.vesta-gematik.de/standards/detail/standards/spezifikation-des-card-operating-system-cos-elektrische-schnittstelle-1/[Gematik COS specification]. +After creating a command object resp. sequence you can execute it on a Healthcard with the help of `publisher(for:)`. +More information on how to configure the commands can also be found in the Gematik COS specification. + +Following example shall send a +SELECT+ and a +READ+ command to a smart card +in order to select and read the certificate stored in the file +EF.C.CH.AUT.R2048+ in the application +ESIGN+. + +First we want to to create a `SelectCommand` object passing a `ApplicationIdentifier`. We use one of the predefined +helper functions by using `HealthCardCommand.Select`. + +One could also use the `HealthCardCommandBuilder` to construct a customized `HealthCardCommand` +by setting the APDU-bytes manually. + +[source,swift] +---- +let eSign = EgkFileSystem.DF.ESIGN +let selectEsignCommand = HealthCardCommand.Select.selectFile(with: eSign.aid) +---- + +===== Setting an execution target + +We execute the created command `CardType` instance which has been typically provided by a `CardReaderType`. + +In the next example we use a `HealthCard` object representing an eGK (elektronische Gesundheitskarte) +as one kind of a `HealthCardType` implementing the `CardType` protocol. + +[source,swift] +---- +// initialize your CardReaderType instance +let cardReader: CardReaderType = CardSimulationTerminalTestCase.reader +let card = try cardReader.connect([:])! +let healthCardStatus = HealthCardStatus.valid(cardType: .egk(generation: .g2)) +let eGk = try HealthCard(card: card, status: healthCardStatus) +let publisher: AnyPublisher = selectEsignCommand.publisher(for: eGk) +---- + +A created command can be lifted to the Combine framework with `publisher(for:writetimeout:readtimeout)`. +The result of the command execution can be validated against an expected `ResponseStatus`, +e.g. +SUCCESS+ (+0x9000+). + +[source,swift] +---- +let checkResponse = publisher.tryMap { healthCardResponse -> HealthCardResponseType in + guard healthCardResponse.responseStatus == ResponseStatus.success else { + throw HealthCard.Error.operational // throw a meaningful Error + } + return healthCardResponse +} +---- + +===== Create a Command Sequence + +It is possible to chain further commands via the `flatMap` operator for subsequent execution: +First create a command and lift it onto a Combine monad, then create a publisher using the `flatMap` operator, e.g. + +``` +Just(AnyHealthCardCommand.build()) + .flatMap { command in command.pusblisher(for: card) } +``` + +Eventually use `eraseToAnyPublisher()`. + +[source,swift] +---- +let readCertificate = checkResponse + .tryMap { _ -> HealthCardCommandType in + let sfi = EgkFileSystem.EF.esignCChAutR2048.sfid! + return try HealthCardCommand.Read.readFileCommand(with: sfi, ne: 0x076C - 1) + } + .flatMap { command in + command.publisher(for: eGk) + } + .eraseToAnyPublisher() +---- + +===== Process Execution result + +When the whole command chain is set up we have to subscribe to it. +We really only will receive one value before completion, so something as simple as this `sink()` +convenience publisher is useful. + +[source,swift] +---- +readCertificate + .sink( + receiveCompletion: { completion in + switch completion { + case .finished: + DLog("Completed") + case let .failure(error): + DLog("Error: \(error)") + } + }, + receiveValue: { healthCardResponse in + DLog("Got a certifcate") + let certificate = healthCardResponse.data! + // proceed with certificate data here + // use swiftUI to a show success message on screen etc. + } + ) +---- +[#HealthCardControl] +=== HealthCardControl + +This library can be used to realize use cases for interacting with a German Health Card +(eGk, elektronische Gesundheitskarte) via a mobile device. + +Typically you would use this library as the high level API gateway for your mobile application +to send predefined command chains to the Health Card and interpret the responses. + +For more info, please find the low level part `HealthCardAccess`. +and a https://github.com/gematik/ref-OpenHealthCardApp-iOS[Demo App] on GitHub. + +See the https://gematik.github.io/[Gematik GitHub IO] page for a more general overview. + + +==== Code Samples + +Take the necessary preparatory steps for signing a challenge on the Health Card, then sign it. + +[source,swift] +---- +expect { + let challenge = Data([0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]) + let format2Pin = try Format2Pin(pincode: "123456") + return try Self.healthCard.verify(pin: format2Pin, type: EgkFileSystem.Pin.mrpinHome) + .flatMap { _ in + Self.healthCard.sign(data: challenge) + } + .eraseToAnyPublisher() + .test() + .responseStatus +} == ResponseStatus.success +---- + + +Encapsulate the https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr03110/index_htm.html[PACE protocol] +steps for establishing a secure channel with the Health Card and expose only a simple API call . + +[source,swift] +---- +try KeyAgreement.Algorithm.idPaceEcdhGmAesCbcCmac128.negotiateSessionKey( + card: CardSimulationTerminalTestCase.healthCard, + can: can, + writeTimeout: 0, + readTimeout: 10 +) +---- + +See the integration tests link:include::{integrationtestdir}/HealthCardControl/[IntegrationTests/HealthCardControl/] +for more already implemented use cases. +[#NFCCardReaderProvider] +=== NFCCardReaderProvider + +A `CardReaderProvider` implementation that handles the +communication with the Apple iPhone NFC interface. +[#NFCDemo] +=== NFCDemo + +The NFCDemo iOS App target demonstrates the use of OHCKit and the NFCCardReader[Provider] specifically by utilizing +said framework to connect to and establish a secure communications channel with an eGK Card via NFC. + +The App consist out of two screens/views. The first one will prompt the user for the CAN number. +The second prompts for the PIN. This PIN is verified on the card against `mrpinHome` when the `connect` button is tapped. + +== License + +Copyright 2023 gematik GmbH + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. + +See the link:./LICENSE[LICENSE] for the specific language governing permissions and limitations under the License. + +Unless required by applicable law the software is provided "as is" without warranty of any kind, either express or implied, including, but not limited to, the warranties of fitness for a particular purpose, merchantability, and/or non-infringement. The authors or copyright holders shall not be liable in any manner whatsoever for any damages or other claims arising from, out of or in connection with the software or the use or other dealings with the software, whether in an action of contract, tort, or otherwise. + +The software is the result of research and development activities, therefore not necessarily quality assured and without the character of a liable product. For this reason, gematik does not provide any support or other user assistance (unless otherwise stated in individual cases and without justification of a legal obligation). Furthermore, there is no claim to further development and adaptation of the results to a more current state of the art. + +Gematik may remove published results temporarily or permanently from the place of publication at any time without prior notice or justification. diff --git a/.gitignore b/.gitignore index 858a90c..f4a653b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS_Store /.build /Packages +.vscode # AppCode project files .idea/ @@ -19,6 +20,7 @@ vendor/ ## Build generated build/ DerivedData/ +Resources/*_Info.plist ## Various settings *.pbxuser @@ -53,6 +55,7 @@ playground.xcworkspace # Package.pins # Package.resolved .build/ +/*.xcodeproj # CocoaPods # @@ -94,7 +97,8 @@ fastlane/test_output iOSInjectionProject/ -scripts/publish -devops CardSimulationTestKit +devops + +jenkinsfiles diff --git a/.licenceignore b/.licenceignore new file mode 100644 index 0000000..2c91289 --- /dev/null +++ b/.licenceignore @@ -0,0 +1 @@ +./Package.swift \ No newline at end of file diff --git a/.swiftlint.yml b/.swiftlint.yml index 842a91e..c2fb8bb 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -33,6 +33,7 @@ opt_in_rules: - empty_string - discouraged_optional_collection - closure_end_indentation + - file_header excluded: # paths to ignore during linting. Takes precedence over `included`. - Package.swift - .build/ @@ -68,3 +69,8 @@ custom_rules: message: "Source must not contain author" severity: warning +file_header: + required_pattern: | + \/\/ + \/\/ Copyright \(c\) \d{4} gematik GmbH + \/\/ \ No newline at end of file diff --git a/Brewfile b/Brewfile index 7675ca1..fb97ad3 100644 --- a/Brewfile +++ b/Brewfile @@ -1,2 +1,2 @@ brew 'mint' -brew 'xcodesorg/made/xcodes' +brew 'xcodesorg/made/xcodes' \ No newline at end of file diff --git a/Cartfile.private b/Cartfile.private index 688bcd0..268bf26 100644 --- a/Cartfile.private +++ b/Cartfile.private @@ -1,4 +1,2 @@ -github "Quick/Nimble" ~> 9.0 -github "tadija/AEXML" ~> 4.0 -github "hectr/swift-stream-reader" "0.3.0" +github "Quick/Nimble" ~> 11.0 github "swiftsocket/SwiftSocket" "2e6ba27140a29fae8a6331ba4463312e0c71a6b0" diff --git a/Cartfile.resolved b/Cartfile.resolved index 1a1357d..575156c 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,8 +1,6 @@ -github "Quick/Nimble" "v9.2.1" +github "Quick/Nimble" "v11.2.2" github "SwiftCommon/DataKit" "1.1.0" -github "gematik/ASN1Kit" "1.1.0" +github "gematik/ASN1Kit" "1.2.1" github "gematik/OpenSSL-Swift" "4.1.0" github "gematik/ref-GemCommonsKit" "1.3.0" -github "hectr/swift-stream-reader" "0.3.0" github "swiftsocket/SwiftSocket" "2e6ba27140a29fae8a6331ba4463312e0c71a6b0" -github "tadija/AEXML" "4.6.1" diff --git a/Gemfile b/Gemfile index f8cd044..77ae905 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,7 @@ gem "fastlane", "~>2.213" gem "jazzy", "~>0.13" gem "xcodeproj", "~>1.7" gem "xcode-install", "~> 2.6.6" +gem "asciidoctor-reducer" plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') eval_gemfile(plugins_path) if File.exist?(plugins_path) diff --git a/Gemfile.lock b/Gemfile.lock index c2c883c..bfe840d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,48 +1,57 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.5) + CFPropertyList (3.0.6) rexml - activesupport (6.1.6) + activesupport (7.1.2) + base64 + bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) minitest (>= 5.1) + mutex_m tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.5) + public_suffix (>= 2.0.2, < 6.0) algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) artifactory (3.0.15) + asciidoctor (2.0.20) + asciidoctor-reducer (1.0.5) + asciidoctor (~> 2.0) atomos (0.1.3) - aws-eventstream (1.2.0) - aws-partitions (1.785.0) - aws-sdk-core (3.178.0) - aws-eventstream (~> 1, >= 1.0.2) + aws-eventstream (1.3.0) + aws-partitions (1.862.0) + aws-sdk-core (3.190.0) + aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) - aws-sigv4 (~> 1.5) + aws-sigv4 (~> 1.8) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.71.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-kms (1.74.0) + aws-sdk-core (~> 3, >= 3.188.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.129.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-s3 (1.141.0) + aws-sdk-core (~> 3, >= 3.189.0) aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.6) - aws-sigv4 (1.6.0) + aws-sigv4 (~> 1.8) + aws-sigv4 (1.8.0) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) + base64 (0.2.0) + bigdecimal (3.1.4) claide (1.0.3) - cocoapods (1.11.3) + cocoapods (1.14.3) addressable (~> 2.8) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.11.3) + cocoapods-core (= 1.14.3) cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.4.0, < 2.0) + cocoapods-downloader (>= 2.1, < 3.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.4.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) escape (~> 0.0.4) @@ -50,10 +59,10 @@ GEM gh_inspector (~> 1.0) molinillo (~> 0.8.0) nap (~> 1.0) - ruby-macho (>= 1.0, < 3.0) - xcodeproj (>= 1.21.0, < 2.0) - cocoapods-core (1.11.3) - activesupport (>= 5.0, < 7) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.23.0, < 2.0) + cocoapods-core (1.14.3) + activesupport (>= 5.0, < 8) addressable (~> 2.8) algoliasearch (~> 1.0) concurrent-ruby (~> 1.1) @@ -63,7 +72,7 @@ GEM public_suffix (~> 4.0) typhoeus (~> 1.0) cocoapods-deintegrate (1.0.5) - cocoapods-downloader (1.6.3) + cocoapods-downloader (2.1) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.1) @@ -75,18 +84,20 @@ GEM colored2 (3.1.2) commander (4.6.0) highline (~> 2.0.0) - concurrent-ruby (1.1.10) + concurrent-ruby (1.2.2) + connection_pool (2.4.1) declarative (0.0.20) digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) + domain_name (0.6.20231109) dotenv (2.8.1) + drb (2.2.0) + ruby2_keywords emoji_regex (3.2.3) escape (0.0.4) - ethon (0.15.0) + ethon (0.16.0) ffi (>= 1.15.0) - excon (0.100.0) + excon (0.105.0) faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -116,7 +127,7 @@ GEM faraday_middleware (1.2.0) faraday (~> 1.0) fastimage (2.2.7) - fastlane (2.213.0) + fastlane (2.217.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) @@ -137,6 +148,7 @@ GEM google-apis-playcustomapp_v1 (~> 0.1) google-cloud-storage (~> 1.31) highline (~> 2.0) + http-cookie (~> 1.0.5) json (< 3.0.0) jwt (>= 2.1.0, < 3) mini_magick (>= 4.9.4, < 5.0.0) @@ -148,20 +160,20 @@ GEM security (= 0.1.3) simctl (~> 1.6.3) terminal-notifier (>= 2.0.0, < 3.0.0) - terminal-table (>= 1.4.5, < 2.0.0) + terminal-table (~> 3) tty-screen (>= 0.6.3, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) - ffi (1.15.5) + ffi (1.16.3) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.45.0) + google-apis-androidpublisher_v3 (0.53.0) google-apis-core (>= 0.11.0, < 2.a) - google-apis-core (0.11.0) + google-apis-core (0.11.2) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -174,26 +186,25 @@ GEM google-apis-core (>= 0.11.0, < 2.a) google-apis-playcustomapp_v1 (0.13.0) google-apis-core (>= 0.11.0, < 2.a) - google-apis-storage_v1 (0.19.0) - google-apis-core (>= 0.9.0, < 2.a) + google-apis-storage_v1 (0.29.0) + google-apis-core (>= 0.11.0, < 2.a) google-cloud-core (1.6.0) google-cloud-env (~> 1.0) google-cloud-errors (~> 1.0) google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) google-cloud-errors (1.3.1) - google-cloud-storage (1.44.0) + google-cloud-storage (1.45.0) addressable (~> 2.8) digest-crc (~> 0.4) google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.19.0) + google-apis-storage_v1 (~> 0.29.0) google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (1.6.0) + googleauth (1.8.1) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) - memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) signet (>= 0.16, < 2.a) @@ -201,30 +212,31 @@ GEM http-cookie (1.0.5) domain_name (~> 0.5) httpclient (2.8.3) - i18n (1.10.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) - jazzy (0.14.2) + jazzy (0.14.4) cocoapods (~> 1.5) mustache (~> 1.1) open4 (~> 1.3) redcarpet (~> 3.4) rexml (~> 3.2) - rouge (>= 2.0.6, < 4.0) + rouge (>= 2.0.6, < 5.0) sassc (~> 2.1) sqlite3 (~> 1.3) xcinvoke (~> 0.3.0) jmespath (1.6.2) - json (2.6.1) + json (2.7.0) jwt (2.7.1) liferaft (0.0.6) - memoist (0.16.2) mini_magick (4.12.0) - mini_mime (1.1.2) - minitest (5.15.0) + mini_mime (1.1.5) + mini_portile2 (2.8.5) + minitest (5.20.0) molinillo (0.8.0) multi_json (1.15.0) multipart-post (2.3.0) mustache (1.1.1) + mutex_m (0.2.0) nanaimo (0.3.0) nap (1.1.0) naturally (2.2.1) @@ -234,14 +246,14 @@ GEM os (1.1.4) plist (3.7.0) public_suffix (4.0.7) - rake (13.0.6) - redcarpet (3.5.1) + rake (13.1.0) + redcarpet (3.6.0) representable (3.2.0) declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.2.5) + rexml (3.2.6) rouge (2.0.7) ruby-macho (2.5.1) ruby2_keywords (0.0.5) @@ -249,7 +261,7 @@ GEM sassc (2.4.0) ffi (~> 1.9) security (0.1.3) - signet (0.17.0) + signet (0.18.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) @@ -257,24 +269,22 @@ GEM simctl (1.6.10) CFPropertyList naturally - sqlite3 (1.4.2) + sqlite3 (1.6.9) + mini_portile2 (~> 2.8.0) terminal-notifier (2.0.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) trailblazer-option (0.1.2) tty-cursor (0.7.1) tty-screen (0.8.1) tty-spinner (0.9.3) tty-cursor (~> 0.7) - typhoeus (1.4.0) + typhoeus (1.4.1) ethon (>= 0.9.0) - tzinfo (2.0.4) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (1.8.0) + unicode-display_width (2.5.0) webrick (1.8.1) word_wrap (1.0.0) xcinvoke (0.3.0) @@ -282,7 +292,7 @@ GEM xcode-install (2.6.8) claide (>= 0.9.1, < 1.1.0) fastlane (>= 2.1.0, < 3.0.0) - xcodeproj (1.21.0) + xcodeproj (1.23.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -293,12 +303,12 @@ GEM rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) - zeitwerk (2.5.4) PLATFORMS ruby DEPENDENCIES + asciidoctor-reducer fastlane (~> 2.213) jazzy (~> 0.13) xcode-install (~> 2.6.6) diff --git a/IntegrationTests/CardSimulationTerminalTestCase/CardSimulationTerminalResource.swift b/IntegrationTests/CardSimulationTerminalTestCase/CardSimulationTerminalResource.swift index 1f3f4fe..dbcbef2 100644 --- a/IntegrationTests/CardSimulationTerminalTestCase/CardSimulationTerminalResource.swift +++ b/IntegrationTests/CardSimulationTerminalTestCase/CardSimulationTerminalResource.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/CardSimulationTerminalTestCase/CardSimulationTerminalTestCase.swift b/IntegrationTests/CardSimulationTerminalTestCase/CardSimulationTerminalTestCase.swift index 1442301..99aef2b 100644 --- a/IntegrationTests/CardSimulationTerminalTestCase/CardSimulationTerminalTestCase.swift +++ b/IntegrationTests/CardSimulationTerminalTestCase/CardSimulationTerminalTestCase.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. @@ -27,19 +27,19 @@ import XCTest /// - Note: The card type and the content of the image that the card simulation uses is configurable. /// The conveniently overridable properties are `configFileInput` and `healthCardStatusInput`, /// for more sophisticated configuration you can override the functions `configFile()` and `healthCardStatus()` -open class CardSimulationTerminalTestCase: XCTestCase { +class CardSimulationTerminalTestCase: XCTestCase { // Convenience default config input - override these in subclasses if needed class var configFileInput: String { "Configuration/configuration_EGKG2_80276883110000017222_gema5_TCP.xml" } class var healthCardStatusInput: HealthCardStatus { .valid(cardType: .egk(generation: .g2)) } #if os(macOS) || os(Linux) - public static var terminalResource: CardSimulationTerminalResource! - public static var reader: CardReaderType! - public static var card: CardType! - public static var healthCard: HealthCard! + static var terminalResource: CardSimulationTerminalResource! + static var reader: CardReaderType! + static var card: CardType! + static var healthCard: HealthCard! #endif - open class func configFile() -> URL? { + class func configFile() -> URL? { let bundle = Bundle(for: CardSimulationTerminalTestCase.self) guard let url = bundle.resourceURL? .appendingPathComponent("Resources.bundle") @@ -49,12 +49,12 @@ open class CardSimulationTerminalTestCase: XCTestCase { return url } - open class func healthCardStatus() -> HealthCardStatus { + class func healthCardStatus() -> HealthCardStatus { healthCardStatusInput } #if os(macOS) || os(Linux) - open class func createTerminalResource() -> CardSimulationTerminalResource { + class func createTerminalResource() -> CardSimulationTerminalResource { guard let config = configFile() else { fatalError("No configFile") } @@ -75,7 +75,7 @@ open class CardSimulationTerminalTestCase: XCTestCase { #endif #if os(macOS) || os(Linux) - override open class func setUp() { + override class func setUp() { super.setUp() terminalResource = createTerminalResource() do { @@ -92,7 +92,7 @@ open class CardSimulationTerminalTestCase: XCTestCase { } } - override open class func tearDown() { + override class func tearDown() { terminalResource.shutDown() RunLoop.current.run(mode: .default, before: Date(timeIntervalSinceNow: 3)) @@ -102,7 +102,7 @@ open class CardSimulationTerminalTestCase: XCTestCase { } #endif - override open func setUp() { + override func setUp() { super.setUp() do { try createHealthCard() @@ -111,7 +111,7 @@ open class CardSimulationTerminalTestCase: XCTestCase { } } - override open func tearDown() { + override func tearDown() { do { try disconnectCard() } catch { @@ -121,15 +121,15 @@ open class CardSimulationTerminalTestCase: XCTestCase { } #if os(macOS) || os(Linux) - open class func connectCard() throws { + class func connectCard() throws { card = try reader.connect([:]) } - open func createHealthCard() throws { + func createHealthCard() throws { Self.healthCard = try HealthCard(card: Self.card, status: Self.healthCardStatus()) } - open func disconnectCard() throws { + func disconnectCard() throws { try Self.card.disconnect(reset: true) } #endif diff --git a/IntegrationTests/HealthCardAccess/PublisherIntegrationTest.swift b/IntegrationTests/HealthCardAccess/PublisherIntegrationTest.swift index 74c98d6..1fc89a3 100644 --- a/IntegrationTests/HealthCardAccess/PublisherIntegrationTest.swift +++ b/IntegrationTests/HealthCardAccess/PublisherIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/AuthenticateChallengeE256Test.swift b/IntegrationTests/HealthCardControl/AuthenticateChallengeE256Test.swift index 65d63c6..260979c 100644 --- a/IntegrationTests/HealthCardControl/AuthenticateChallengeE256Test.swift +++ b/IntegrationTests/HealthCardControl/AuthenticateChallengeE256Test.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/AuthenticateChallengeR2048Test.swift b/IntegrationTests/HealthCardControl/AuthenticateChallengeR2048Test.swift index 1d0cd2f..be4af72 100644 --- a/IntegrationTests/HealthCardControl/AuthenticateChallengeR2048Test.swift +++ b/IntegrationTests/HealthCardControl/AuthenticateChallengeR2048Test.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/CardChannelTypeExtVersionIntegrationTest.swift b/IntegrationTests/HealthCardControl/CardChannelTypeExtVersionIntegrationTest.swift index 5fe5e8a..164eb7e 100644 --- a/IntegrationTests/HealthCardControl/CardChannelTypeExtVersionIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/CardChannelTypeExtVersionIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/DetermineCardAidIntegrationTest.swift b/IntegrationTests/HealthCardControl/DetermineCardAidIntegrationTest.swift index 8572140..e51070f 100644 --- a/IntegrationTests/HealthCardControl/DetermineCardAidIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/DetermineCardAidIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/HealthCardTypeExtChangeReferenceDataIntegrationTest.swift b/IntegrationTests/HealthCardControl/HealthCardTypeExtChangeReferenceDataIntegrationTest.swift index ff8d8ec..32280a0 100644 --- a/IntegrationTests/HealthCardControl/HealthCardTypeExtChangeReferenceDataIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/HealthCardTypeExtChangeReferenceDataIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/HealthCardTypeExtChangeReferenceDataIntegrationTestCont.swift b/IntegrationTests/HealthCardControl/HealthCardTypeExtChangeReferenceDataIntegrationTestCont.swift index 97eeead..994b079 100644 --- a/IntegrationTests/HealthCardControl/HealthCardTypeExtChangeReferenceDataIntegrationTestCont.swift +++ b/IntegrationTests/HealthCardControl/HealthCardTypeExtChangeReferenceDataIntegrationTestCont.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/HealthCardTypeExtESIGNIntegrationTest.swift b/IntegrationTests/HealthCardControl/HealthCardTypeExtESIGNIntegrationTest.swift index 27867fa..f8978d1 100644 --- a/IntegrationTests/HealthCardControl/HealthCardTypeExtESIGNIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/HealthCardTypeExtESIGNIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/HealthCardTypeExtEfCardAccessIntTest.swift b/IntegrationTests/HealthCardControl/HealthCardTypeExtEfCardAccessIntTest.swift index c5ff847..27fb625 100644 --- a/IntegrationTests/HealthCardControl/HealthCardTypeExtEfCardAccessIntTest.swift +++ b/IntegrationTests/HealthCardControl/HealthCardTypeExtEfCardAccessIntTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/HealthCardTypeExtResetRetryCounterIntegrationTest.swift b/IntegrationTests/HealthCardControl/HealthCardTypeExtResetRetryCounterIntegrationTest.swift index f7fcd01..162f99f 100644 --- a/IntegrationTests/HealthCardControl/HealthCardTypeExtResetRetryCounterIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/HealthCardTypeExtResetRetryCounterIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/HealthCardTypeExtResetRetryCounterIntegrationTestCont.swift b/IntegrationTests/HealthCardControl/HealthCardTypeExtResetRetryCounterIntegrationTestCont.swift index adbb28d..6f7b30b 100644 --- a/IntegrationTests/HealthCardControl/HealthCardTypeExtResetRetryCounterIntegrationTestCont.swift +++ b/IntegrationTests/HealthCardControl/HealthCardTypeExtResetRetryCounterIntegrationTestCont.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/HealthCardTypeExtVerifyPinTest.swift b/IntegrationTests/HealthCardControl/HealthCardTypeExtVerifyPinTest.swift index b9ff5e8..0838130 100644 --- a/IntegrationTests/HealthCardControl/HealthCardTypeExtVerifyPinTest.swift +++ b/IntegrationTests/HealthCardControl/HealthCardTypeExtVerifyPinTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/KeyAgreementIntegrationTest.swift b/IntegrationTests/HealthCardControl/KeyAgreementIntegrationTest.swift index d89259a..aa2e9dd 100644 --- a/IntegrationTests/HealthCardControl/KeyAgreementIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/KeyAgreementIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/OpenSecureSessionIntegrationTest.swift b/IntegrationTests/HealthCardControl/OpenSecureSessionIntegrationTest.swift index 2d7d7b5..aa922c4 100644 --- a/IntegrationTests/HealthCardControl/OpenSecureSessionIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/OpenSecureSessionIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/ReadAutCertificateE256Test.swift b/IntegrationTests/HealthCardControl/ReadAutCertificateE256Test.swift index 8895195..53b4259 100644 --- a/IntegrationTests/HealthCardControl/ReadAutCertificateE256Test.swift +++ b/IntegrationTests/HealthCardControl/ReadAutCertificateE256Test.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/ReadAutCertificateR2048Test.swift b/IntegrationTests/HealthCardControl/ReadAutCertificateR2048Test.swift index 6935978..99e8b03 100644 --- a/IntegrationTests/HealthCardControl/ReadAutCertificateR2048Test.swift +++ b/IntegrationTests/HealthCardControl/ReadAutCertificateR2048Test.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/ReadFileIntegrationTest.swift b/IntegrationTests/HealthCardControl/ReadFileIntegrationTest.swift index ae947cf..2d6ef13 100644 --- a/IntegrationTests/HealthCardControl/ReadFileIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/ReadFileIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/SelectCommandIntegrationTest.swift b/IntegrationTests/HealthCardControl/SelectCommandIntegrationTest.swift index 9a73537..275eb1d 100644 --- a/IntegrationTests/HealthCardControl/SelectCommandIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/SelectCommandIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/HealthCardControl/SelectWithFCPOnSecureChannelIntegrationTest.swift b/IntegrationTests/HealthCardControl/SelectWithFCPOnSecureChannelIntegrationTest.swift index a1e1600..31283cb 100644 --- a/IntegrationTests/HealthCardControl/SelectWithFCPOnSecureChannelIntegrationTest.swift +++ b/IntegrationTests/HealthCardControl/SelectWithFCPOnSecureChannelIntegrationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/IntegrationTests/project.yml b/IntegrationTests/project.yml new file mode 100644 index 0000000..5da2ed8 --- /dev/null +++ b/IntegrationTests/project.yml @@ -0,0 +1,181 @@ +schemes: + AllTests_macOS: + test: + targets: + - CardSimulationCardReaderProviderTests + - AEXMLExtTests + - CardSimulationLoaderTests + - IntegrationTests + AllIntegrationTests: + build: + targets: + IntegrationTests: test + test: + # gatherCoverageData: true + targets: + - CardSimulationCardReaderProviderTests + - CardSimulationLoaderTests + - AEXMLExtTests + - IntegrationTests +targets: + IntegrationTests: + name: IntegrationTests + type: bundle.unit-test + platform: macOS + info: + path: Resources/IntegrationTests_Info.plist + settings: + base: + OTHER_SWIFT_FLAGS: -no-verify-emitted-module-interface + sources: + - path: IntegrationTests + dependencies: + - target: CardReaderAccess_macOS + - target: CardReaderProviderApi_macOS + - target: HealthCardAccess_macOS + - target: HealthCardControl_macOS + - target: Util_macOS + - framework: Carthage/Build/Nimble.xcframework + - target: CardSimulationCardReaderProvider + - target: CardSimulationLoader + - package: AEXML + - target: AEXMLExt + - package: StreamReader + - framework: Carthage/Build/SwiftSocket.xcframework + - package: GemCommonsKit + product: GemCommonsKit + + + # CardSimulationTestKit + CardSimulationLoader: + type: framework + platform: macOS + info: + path: CardSimulationTestKit/Resources/CardSimulationLoader_Info.plist + sources: + - CardSimulationTestKit/Sources/CardSimulationLoader + bundleIdPrefix: de.gematik.ti.openhealthcard.cardsimulation + settings: + base: + BUILD_LIBRARY_FOR_DISTRIBUTION: NO + dependencies: + - package: AEXML + - target: AEXMLExt + embed: true + - package: StreamReader + - package: GemCommonsKit + product: GemCommonsKit + - package: GemCommonsKit + product: ObjCCommonsKit + transitivelyLinkDependencies: true + scheme: + testTargets: + - CardSimulationLoaderTests + SwiftLibsShadow: + type: framework + platform: macOS + bundleIdPrefix: de.gematik.ti.openhealthcard.cardsimulation + settings: + base: + BUILD_LIBRARY_FOR_DISTRIBUTION: NO + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: YES + dependencies: + - target: CardSimulationLoader + AEXMLExt: + type: framework + platform: macOS + bundleIdPrefix: de.gematik.ti.openhealthcard.cardsimulation + settings: + base: + BUILD_LIBRARY_FOR_DISTRIBUTION: NO + info: + path: CardSimulationTestKit/Resources/AEXMLExt_Info.plist + sources: + - CardSimulationTestKit/Sources/AEXMLExt + dependencies: + - package: AEXML + scheme: + testTargets: + - AEXMLExtTests + gatherCoverageData: true + CardSimulationRunner: + type: tool + platform: macOS + bundleIdPrefix: de.gematik.ti.openhealthcard.cardsimulation + settings: + base: + SWIFT_FORCE_DYNAMIC_LINK_STDLIB: YES + SWIFT_FORCE_STATIC_LINK_STDLIB: NO + LD_RUNPATH_SEARCH_PATHS: "$(inherited) @executable_path/SwiftLibsShadow.framework/Versions/Current/Frameworks" + sources: + - CardSimulationTestKit/Sources/CardSimulationRunner + dependencies: + - target: SwiftLibsShadow + - target: CardSimulationLoader + - package: AEXML + - package: StreamReader + - package: GemCommonsKit + product: GemCommonsKit + CardSimulationCardReaderProvider: + type: framework + platform: macOS + bundleIdPrefix: de.gematik.ti.openhealthcard.cardsimulation + settings: + base: + BUILD_LIBRARY_FOR_DISTRIBUTION: NO + info: + path: CardSimulationTestKit/Resources/CardSimulationCardReaderProvider_Info.plist + sources: + - path: CardSimulationTestKit/Sources/CardSimulationCardReaderProvider + dependencies: + - target: CardSimulationLoader + - package: ASN1Kit + - target: CardReaderProviderApi_macOS + - target: CardReaderAccess_macOS + - framework: Carthage/Build/SwiftSocket.xcframework + transitivelyLinkDependencies: true + CardSimulationLoaderTests: + type: bundle.unit-test + platform: macOS + bundleIdPrefix: de.gematik.ti.openhealthcard.cardsimulation + settings: + base: + OTHER_SWIFT_FLAGS: -no-verify-emitted-module-interface + sources: + - CardSimulationTestKit/Tests/CardSimulationLoaderTests + dependencies: + - package: AEXML + - target: AEXMLExt + - target: CardSimulationLoader + - package: GemCommonsKit + product: GemCommonsKit + - framework: Carthage/Build/Nimble.xcframework + gatherCoverageData: true + AEXMLExtTests: + type: bundle.unit-test + platform: macOS + bundleIdPrefix: de.gematik.ti.openhealthcard.cardsimulation + sources: + - CardSimulationTestKit/Tests/AEXMLExtTests + dependencies: + - target: AEXMLExt + - package: AEXML + - framework: Carthage/Build/Nimble.xcframework + gatherCoverageData: true + CardSimulationCardReaderProviderTests: + type: bundle.unit-test + platform: macOS + bundleIdPrefix: de.gematik.ti.openhealthcard.cardsimulation + settings: + base: + OTHER_SWIFT_FLAGS: -no-verify-emitted-module-interface + sources: + - CardSimulationTestKit/Tests/CardSimulationCardReaderProviderTests + dependencies: + - target: CardSimulationCardReaderProvider + - target: AEXMLExt + - framework: Carthage/Build/Nimble.xcframework + - package: DataKit + - package: GemCommonsKit + product: GemCommonsKit + gatherCoverageData: true \ No newline at end of file diff --git a/LICENSE b/LICENSE index b284197..478c496 100644 --- a/LICENSE +++ b/LICENSE @@ -1,13 +1,201 @@ -Copyright (c) 2023 gematik GmbH - -Licensed under the Apache License, Version 2.0 (the License); + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +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 - + http://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, +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. +limitations under the License. \ No newline at end of file diff --git a/Makefile b/Makefile index a352a9f..2ddfaa7 100644 --- a/Makefile +++ b/Makefile @@ -30,5 +30,8 @@ lint: cibuild: $(PROJECT_DIR)/scripts/cibuild +publish: + $(PROJECT_DIR)/scripts/publish -all: cibuild +readme: + $(PROJECT_DIR)/scripts/readme \ No newline at end of file diff --git a/Mintfile b/Mintfile index 567f34b..4be47dc 100644 --- a/Mintfile +++ b/Mintfile @@ -1,4 +1,4 @@ realm/SwiftLint@0.43.1 -yonaskolb/xcodegen@2.23.1 +yonaskolb/xcodegen@2.38.0 Carthage/Carthage@0.39.0 nicklockwood/SwiftFormat@0.48.7 \ No newline at end of file diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..4ea7e02 --- /dev/null +++ b/README.adoc @@ -0,0 +1,28 @@ +//// +Execute `make readme` after editing /README.adoc +//// +:toc-title: Table of Contents +:toc: +:toclevels: 2 +:source-highlighter: prettify + +:testdir: ../../Tests +:integrationtestdir: ../../IntegrationTests +:sourcedir: ../../Sources + += OpenHealthCardKit + +Controlling/Use-case framework for accessing smart cards of the telematic infrastructure. + +include::doc/userguide/OHCKIT_Introduction.adoc[] +include::doc/userguide/OHCKIT_API.adoc[] +include::doc/userguide/OHCKIT_GettingStarted.adoc[] + +include::doc/userguide/OHCKIT_Overview.adoc[] +include::doc/userguide/OHCKIT_CardReaderProviderApi.adoc[] +include::doc/userguide/OHCKIT_HealthCardAccess.adoc[] +include::doc/userguide/OHCKIT_HealthCardControl.adoc[] +include::doc/userguide/OHCKIT_NFCCardReaderProvider.adoc[] +include::doc/userguide/OHCKIT_NFCDemo.adoc[] + +include::doc/userguide/OHCKIT_License.adoc[] diff --git a/README.md b/README.md deleted file mode 100644 index 9732f81..0000000 --- a/README.md +++ /dev/null @@ -1,239 +0,0 @@ -# OpenHealthCardKit - -Controlling/Use-case framework for accessing smart cards of the telematic infrastructure. - -## Introduction - -The OpenHealthCardKit module is intended for reference purposes -when implementing a system that performs the communication between an iOS based mobile device -and a German Health Card (elektronische Gesundheitskarte) using an NFC, Blue Tooth oder USB interface. - -This document describes the functionalitiy and structure of OpenHealthCardKit. - -## API Documentation - -Generated API docs are available at . - -## License - -Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). - -## Getting Started - -OpenHealthCardKit requires Swift 5.1. - -### Setup for integration - -- **Swift Package Manager:** Put this in your `Package.swift`: - - `.package(url: "https://github.com/gematik/ref-OpenHealthCardKit", from: "5.3.0"),` - -- **Carthage:** Put this in your `Cartfile`: - - github "gematik/ref-openHealthCardKit" ~> 5.0 - -### Setup for development - -Run `$ make setup` to start developing locally. This will make sure all the dependencies are put in place and the Xcode-project will be generated and/or overwritten. - -Dependencies are a mix of SPM (Swift Package Manager) and Carthage right now. The Xcode-project is generated using `xcodegen`. -The more complex build configuration(s) is done with the help of Fastlane. See the `./fastlane` directory for full setup. - -## Overview - -OpenHealthCardKit bundles submodules that provide the functionality -necessary for accessing and interacting with German Health Cards via a mobile iOS device. - -OpenHealthCardKit consists of the submodules - -- CardReaderProviderApi - -- HealthCardAccess - -- HealthCardControl - -- NFCCardReaderProvider - -As a reference for each submodule see also the `IntegrationTests`. -Also see a [Demo App](https://github.com/gematik/ref-OpenHealthCardApp-iOS) on GitHub using this framework. - -### CardReaderProviderApi - -(Smart)CardReader protocols for interacting with `HealthCardAccess`. - -### HealthCardAccess - -This library contains the classes for cards, commands, card file systems and error handling. - -#### HealthCardAccess API - -The HealthCardAccessKit API Structure contains the `HealthCard` class representing all supported card types, -the `Commands` and `Responses` groups with all supported commands and responses for health cards, -the `CardObjects` group with the possible objects on a health cards -and the `Operation` group for cascading and executing commands on health cards. - -##### Health Cards - -The class `HealthCard` represents the potential types of health cards by storing a `HealthCardStatus` property which in -case of being *valid* by itself stores a `HealthCardPropertyType` which at the time of writing is represented by either -one of the following - -- egk ("elektronische Gesundheitskarte") - -- hba ("Heilberufeausweis") - -- smcb ("Security Module Card Typ B"). - -The `HealthCardPropertyType` by itself stores the `CardGeneration` (G1, G1P, G2, G2.1) as well. - -Furthermore the `HealthCard` object contains the physical card from a card reader and the current card channel. - -##### Commands - -The `Commands` groups contains all available `HealthCardCommand` objects for health cards through the `HealthCardCommandBuilder`. - -#### Code Samples - -##### Create a command - -The design of this API follows the [command design pattern](https://en.wikipedia.org/wiki/Command_pattern) -leveraging Swift’s [Combine Framework](https://developer.apple.com/documentation/combine/). -The command objects are designed to fulfil the use-cases described in the [Gematik COS specification](https://www.vesta-gematik.de/standards/detail/standards/spezifikation-des-card-operating-system-cos-elektrische-schnittstelle-1/). -After creating a command object resp. sequence you can execute it on a Healthcard with the help of `publisher(for:)`. -More information on how to configure the commands can also be found in the Gematik COS specification. - -Following example shall send a SELECT and a READ command to a smart card -in order to select and read the certificate stored in the file EF.C.CH.AUT.R2048 in the application ESIGN. - -First we want to to create a `SelectCommand` object passing a `ApplicationIdentifier`. We use one of the predefined -helper functions by using `HealthCardCommand.Select`. - -One could also use the `HealthCardCommandBuilder` to construct a customized `HealthCardCommand` -by setting the APDU-bytes manually. - - let eSign = EgkFileSystem.DF.ESIGN - let selectEsignCommand = HealthCardCommand.Select.selectFile(with: eSign.aid) - -##### Setting an execution target - -We execute the created command `CardType` instance which has been typically provided by a `CardReaderType`. - -In the next example we use a `HealthCard` object representing an eGK (elektronische Gesundheitskarte) -as one kind of a `HealthCardType` implementing the `CardType` protocol. - - // initialize your CardReaderType instance - let cardReader: CardReaderType = CardSimulationTerminalTestCase.reader - let card = try cardReader.connect([:])! - let healthCardStatus = HealthCardStatus.valid(cardType: .egk(generation: .g2)) - let eGk = try HealthCard(card: card, status: healthCardStatus) - let publisher: AnyPublisher = selectEsignCommand.publisher(for: eGk) - -A created command can be lifted to the Combine framework with `publisher(for:writetimeout:readtimeout)`. -The result of the command execution can be validated against an expected `ResponseStatus`, -e.g. SUCCESS (0x9000). - - let checkResponse = publisher.tryMap { healthCardResponse -> HealthCardResponseType in - guard healthCardResponse.responseStatus == ResponseStatus.success else { - throw HealthCard.Error.operational // throw a meaningful Error - } - return healthCardResponse - } - -##### Create a Command Sequence - -It is possible to chain further commands via the `flatMap` operator for subsequent execution: -First create a command and lift it onto a Combine monad, then create a publisher using the `flatMap` operator, e.g. - - Just(AnyHealthCardCommand.build()) - .flatMap { command in command.pusblisher(for: card) } - -Eventually use `eraseToAnyPublisher()`. - - let readCertificate = checkResponse - .tryMap { _ -> HealthCardCommandType in - let sfi = EgkFileSystem.EF.esignCChAutR2048.sfid! - return try HealthCardCommand.Read.readFileCommand(with: sfi, ne: 0x076C - 1) - } - .flatMap { command in - command.publisher(for: eGk) - } - .eraseToAnyPublisher() - -##### Process Execution result - -When the whole command chain is set up we have to subscribe to it. -We really only will receive one value before completion, so something as simple as this `sink()` -convenience publisher is useful. - - readCertificate - .sink( - receiveCompletion: { completion in - switch completion { - case .finished: - DLog("Completed") - case let .failure(error): - DLog("Error: \(error)") - } - }, - receiveValue: { healthCardResponse in - DLog("Got a certifcate") - let certificate = healthCardResponse.data! - // proceed with certificate data here - // use swiftUI to a show success message on screen etc. - } - ) - -### HealthCardControl - -This library can be used to realize use cases for interacting with a German Health Card -(eGk, elektronische Gesundheitskarte) via a mobile device. - -Typically you would use this library as the high level API gateway for your mobile application -to send predefined command chains to the Health Card and interpret the responses. - -For more info, please find the low level part `HealthCardAccess`. -and a [Demo App](https://github.com/gematik/ref-OpenHealthCardApp-iOS) on GitHub. - -See the [Gematik GitHub IO](https://gematik.github.io/) page for a more general overview. - -#### Code Samples - -Take the necessary preparatory steps for signing a challenge on the Health Card, then sign it. - - expect { - let challenge = Data([0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]) - let format2Pin = try Format2Pin(pincode: "123456") - return try Self.healthCard.verify(pin: format2Pin, type: EgkFileSystem.Pin.mrpinHome) - .flatMap { _ in - Self.healthCard.sign(data: challenge) - } - .eraseToAnyPublisher() - .test() - .responseStatus - } == ResponseStatus.success - -Encapsulate the [PACE protocol](https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr03110/index_htm.html) -steps for establishing a secure channel with the Health Card and expose only a simple API call . - - try KeyAgreement.Algorithm.idPaceEcdhGmAesCbcCmac128.negotiateSessionKey( - card: CardSimulationTerminalTestCase.healthCard, - can: can, - writeTimeout: 0, - readTimeout: 10 - ) - -See the integration tests [IntegrationTests/HealthCardControl/](include::../../IntegrationTests/HealthCardControl/) -for more already implemented use cases. - -### NFCCardReaderProvider - -A `CardReaderProvider` implementation that handles the -communication with the Apple iPhone NFC interface. - -### NFCDemo - -The NFCDemo iOS App target demonstrates the use of OHCKit and the NFCCardReader\[Provider\] specifically by utilizing -said framework to connect to and establish a secure communications channel with an eGK Card via NFC. - -The App consist out of two screens/views. The first one will prompt the user for the CAN number. -The second prompts for the PIN. This PIN is verified on the card against `mrpinHome` when the `connect` button is tapped. diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 08be4c1..e90986d 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,3 +1,9 @@ +# Release 5.4.0 + +## Changed + +- Adapt for Xcode15 development + # Release 5.3.0 ## Add diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..936bd05 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,7 @@ +# Security Policy + +Since this software is not a productive version, please submit an issue or pull request for any bugs +or vulnerabilities you find. + +In case of a responsible disclosure, please follow instructions +on https://www.gematik.de/datensicherheit#c1227. diff --git a/Sources/CardReaderAccess/CardReaderControllerManager.swift b/Sources/CardReaderAccess/CardReaderControllerManager.swift index 50f09c1..f062836 100644 --- a/Sources/CardReaderAccess/CardReaderControllerManager.swift +++ b/Sources/CardReaderAccess/CardReaderControllerManager.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderAccess/internal/Swift+Reflection.swift b/Sources/CardReaderAccess/internal/Swift+Reflection.swift index 9ca63af..ab4e098 100644 --- a/Sources/CardReaderAccess/internal/Swift+Reflection.swift +++ b/Sources/CardReaderAccess/internal/Swift+Reflection.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Card/CardChannelType.swift b/Sources/CardReaderProviderApi/Card/CardChannelType.swift index 3e96497..354fd12 100644 --- a/Sources/CardReaderProviderApi/Card/CardChannelType.swift +++ b/Sources/CardReaderProviderApi/Card/CardChannelType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Card/CardError.swift b/Sources/CardReaderProviderApi/Card/CardError.swift index 690f0f8..8ce3b4f 100644 --- a/Sources/CardReaderProviderApi/Card/CardError.swift +++ b/Sources/CardReaderProviderApi/Card/CardError.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Card/CardProtocol.swift b/Sources/CardReaderProviderApi/Card/CardProtocol.swift index baf520f..18eec99 100644 --- a/Sources/CardReaderProviderApi/Card/CardProtocol.swift +++ b/Sources/CardReaderProviderApi/Card/CardProtocol.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Card/CardType.swift b/Sources/CardReaderProviderApi/Card/CardType.swift index 33e98be..9427ca6 100644 --- a/Sources/CardReaderProviderApi/Card/CardType.swift +++ b/Sources/CardReaderProviderApi/Card/CardType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Command/APDU.swift b/Sources/CardReaderProviderApi/Command/APDU.swift index 7753797..29c994e 100644 --- a/Sources/CardReaderProviderApi/Command/APDU.swift +++ b/Sources/CardReaderProviderApi/Command/APDU.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Command/CommandType+APDU.swift b/Sources/CardReaderProviderApi/Command/CommandType+APDU.swift index dead755..1e8ddb4 100644 --- a/Sources/CardReaderProviderApi/Command/CommandType+APDU.swift +++ b/Sources/CardReaderProviderApi/Command/CommandType+APDU.swift @@ -1,13 +1,13 @@ // swiftlint:disable:this file_name // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Command/CommandType+LogicChannel.swift b/Sources/CardReaderProviderApi/Command/CommandType+LogicChannel.swift index 84da623..f872956 100644 --- a/Sources/CardReaderProviderApi/Command/CommandType+LogicChannel.swift +++ b/Sources/CardReaderProviderApi/Command/CommandType+LogicChannel.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Command/CommandType.swift b/Sources/CardReaderProviderApi/Command/CommandType.swift index b9006ca..a6e732f 100644 --- a/Sources/CardReaderProviderApi/Command/CommandType.swift +++ b/Sources/CardReaderProviderApi/Command/CommandType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Command/ResponseType+APDU.swift b/Sources/CardReaderProviderApi/Command/ResponseType+APDU.swift index 7bfd535..e0ff60b 100644 --- a/Sources/CardReaderProviderApi/Command/ResponseType+APDU.swift +++ b/Sources/CardReaderProviderApi/Command/ResponseType+APDU.swift @@ -1,13 +1,13 @@ // swiftlint:disable:this file_name // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Command/ResponseType.swift b/Sources/CardReaderProviderApi/Command/ResponseType.swift index 9f839c1..7958092 100644 --- a/Sources/CardReaderProviderApi/Command/ResponseType.swift +++ b/Sources/CardReaderProviderApi/Command/ResponseType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Model/ProviderDescriptor.swift b/Sources/CardReaderProviderApi/Model/ProviderDescriptor.swift index 8896d9c..cfaa7a2 100644 --- a/Sources/CardReaderProviderApi/Model/ProviderDescriptor.swift +++ b/Sources/CardReaderProviderApi/Model/ProviderDescriptor.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Model/ProviderDescriptorType.swift b/Sources/CardReaderProviderApi/Model/ProviderDescriptorType.swift index 838055a..74b8ecc 100644 --- a/Sources/CardReaderProviderApi/Model/ProviderDescriptorType.swift +++ b/Sources/CardReaderProviderApi/Model/ProviderDescriptorType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Provider/CardReaderProviderType.swift b/Sources/CardReaderProviderApi/Provider/CardReaderProviderType.swift index 62deab2..7c9d374 100644 --- a/Sources/CardReaderProviderApi/Provider/CardReaderProviderType.swift +++ b/Sources/CardReaderProviderApi/Provider/CardReaderProviderType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Reader/CardReaderControllerType.swift b/Sources/CardReaderProviderApi/Reader/CardReaderControllerType.swift index 90558a5..8a5ac34 100644 --- a/Sources/CardReaderProviderApi/Reader/CardReaderControllerType.swift +++ b/Sources/CardReaderProviderApi/Reader/CardReaderControllerType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/CardReaderProviderApi/Reader/CardReaderType.swift b/Sources/CardReaderProviderApi/Reader/CardReaderType.swift index 13b4ece..a17d5cf 100644 --- a/Sources/CardReaderProviderApi/Reader/CardReaderType.swift +++ b/Sources/CardReaderProviderApi/Reader/CardReaderType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/ApplicationIdentifier.swift b/Sources/HealthCardAccess/CardObjects/ApplicationIdentifier.swift index cc32ed1..7b4280c 100644 --- a/Sources/HealthCardAccess/CardObjects/ApplicationIdentifier.swift +++ b/Sources/HealthCardAccess/CardObjects/ApplicationIdentifier.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/CardItemType.swift b/Sources/HealthCardAccess/CardObjects/CardItemType.swift index 0bb410c..39d4caa 100644 --- a/Sources/HealthCardAccess/CardObjects/CardItemType.swift +++ b/Sources/HealthCardAccess/CardObjects/CardItemType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/CardKeyReferenceType.swift b/Sources/HealthCardAccess/CardObjects/CardKeyReferenceType.swift index 04c38ec..f49c29c 100644 --- a/Sources/HealthCardAccess/CardObjects/CardKeyReferenceType.swift +++ b/Sources/HealthCardAccess/CardObjects/CardKeyReferenceType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/CardObjectIdentifierType.swift b/Sources/HealthCardAccess/CardObjects/CardObjectIdentifierType.swift index 316c4e9..3a207ba 100644 --- a/Sources/HealthCardAccess/CardObjects/CardObjectIdentifierType.swift +++ b/Sources/HealthCardAccess/CardObjects/CardObjectIdentifierType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/DedicatedFile.swift b/Sources/HealthCardAccess/CardObjects/DedicatedFile.swift index a6c2568..6e6b9ec 100644 --- a/Sources/HealthCardAccess/CardObjects/DedicatedFile.swift +++ b/Sources/HealthCardAccess/CardObjects/DedicatedFile.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/ElementaryFile.swift b/Sources/HealthCardAccess/CardObjects/ElementaryFile.swift index 41e59da..34faeb9 100644 --- a/Sources/HealthCardAccess/CardObjects/ElementaryFile.swift +++ b/Sources/HealthCardAccess/CardObjects/ElementaryFile.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/FileControlParameter.swift b/Sources/HealthCardAccess/CardObjects/FileControlParameter.swift index 3c036bc..b845ac9 100644 --- a/Sources/HealthCardAccess/CardObjects/FileControlParameter.swift +++ b/Sources/HealthCardAccess/CardObjects/FileControlParameter.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/FileIdentifier.swift b/Sources/HealthCardAccess/CardObjects/FileIdentifier.swift index 86c6ae6..b58d9b6 100644 --- a/Sources/HealthCardAccess/CardObjects/FileIdentifier.swift +++ b/Sources/HealthCardAccess/CardObjects/FileIdentifier.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/Format2Pin.swift b/Sources/HealthCardAccess/CardObjects/Format2Pin.swift index 4d42f94..293e4f0 100644 --- a/Sources/HealthCardAccess/CardObjects/Format2Pin.swift +++ b/Sources/HealthCardAccess/CardObjects/Format2Pin.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/GemCvCertificate.swift b/Sources/HealthCardAccess/CardObjects/GemCvCertificate.swift index 6808eae..6b545e0 100644 --- a/Sources/HealthCardAccess/CardObjects/GemCvCertificate.swift +++ b/Sources/HealthCardAccess/CardObjects/GemCvCertificate.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/Key.swift b/Sources/HealthCardAccess/CardObjects/Key.swift index 75ff5b5..6232124 100644 --- a/Sources/HealthCardAccess/CardObjects/Key.swift +++ b/Sources/HealthCardAccess/CardObjects/Key.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/PSOAlgorithm.swift b/Sources/HealthCardAccess/CardObjects/PSOAlgorithm.swift index a5a0476..3dac446 100644 --- a/Sources/HealthCardAccess/CardObjects/PSOAlgorithm.swift +++ b/Sources/HealthCardAccess/CardObjects/PSOAlgorithm.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/Password.swift b/Sources/HealthCardAccess/CardObjects/Password.swift index 3ee3afa..8fea300 100644 --- a/Sources/HealthCardAccess/CardObjects/Password.swift +++ b/Sources/HealthCardAccess/CardObjects/Password.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/CardObjects/ShortFileIdentifier.swift b/Sources/HealthCardAccess/CardObjects/ShortFileIdentifier.swift index b440159..eda1e2c 100644 --- a/Sources/HealthCardAccess/CardObjects/ShortFileIdentifier.swift +++ b/Sources/HealthCardAccess/CardObjects/ShortFileIdentifier.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/Data+Normalize.swift b/Sources/HealthCardAccess/Commands/Data+Normalize.swift index e9e7591..59533fe 100644 --- a/Sources/HealthCardAccess/Commands/Data+Normalize.swift +++ b/Sources/HealthCardAccess/Commands/Data+Normalize.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand+AccessStructuredData.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand+AccessStructuredData.swift index 7c39dc7..ee95973 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand+AccessStructuredData.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand+AccessStructuredData.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand+AccessTransparentData.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand+AccessTransparentData.swift index e30d666..49b44c4 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand+AccessTransparentData.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand+AccessTransparentData.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand+Authentication.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand+Authentication.swift index ad3f3b1..76ed845 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand+Authentication.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand+Authentication.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand+ManageSE.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand+ManageSE.swift index 00b9366..cd40691 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand+ManageSE.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand+ManageSE.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand+Misc.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand+Misc.swift index b21e47c..312cadc 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand+Misc.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand+Misc.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand+ObjectSystemManagement.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand+ObjectSystemManagement.swift index 31b0b1b..8f9e47e 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand+ObjectSystemManagement.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand+ObjectSystemManagement.swift @@ -1,12 +1,13 @@ +// swiftlint:disable file_length // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand+PerfomSecurityOperation.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand+PerfomSecurityOperation.swift index aa51eb1..1745de4 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand+PerfomSecurityOperation.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand+PerfomSecurityOperation.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand+UserVerification.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand+UserVerification.swift index c2bd642..35b9f2e 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand+UserVerification.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand+UserVerification.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommand.swift b/Sources/HealthCardAccess/Commands/HealthCardCommand.swift index 0d29eac..aff27f4 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommand.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommand.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Commands/HealthCardCommandBuilder.swift b/Sources/HealthCardAccess/Commands/HealthCardCommandBuilder.swift index 65e2367..b00d9a7 100644 --- a/Sources/HealthCardAccess/Commands/HealthCardCommandBuilder.swift +++ b/Sources/HealthCardAccess/Commands/HealthCardCommandBuilder.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Extension/UInt8+Data.swift b/Sources/HealthCardAccess/Extension/UInt8+Data.swift index 88679e7..9f0473a 100644 --- a/Sources/HealthCardAccess/Extension/UInt8+Data.swift +++ b/Sources/HealthCardAccess/Extension/UInt8+Data.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCard.swift b/Sources/HealthCardAccess/HealthCard.swift index 0f96336..e9836e4 100644 --- a/Sources/HealthCardAccess/HealthCard.swift +++ b/Sources/HealthCardAccess/HealthCard.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCardCommandType.swift b/Sources/HealthCardAccess/HealthCardCommandType.swift index 196acc1..a41878e 100644 --- a/Sources/HealthCardAccess/HealthCardCommandType.swift +++ b/Sources/HealthCardAccess/HealthCardCommandType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCardPropertyType.swift b/Sources/HealthCardAccess/HealthCardPropertyType.swift index ad9778a..ab1e5af 100644 --- a/Sources/HealthCardAccess/HealthCardPropertyType.swift +++ b/Sources/HealthCardAccess/HealthCardPropertyType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCardResponseType.swift b/Sources/HealthCardAccess/HealthCardResponseType.swift index 360c16f..deea37c 100644 --- a/Sources/HealthCardAccess/HealthCardResponseType.swift +++ b/Sources/HealthCardAccess/HealthCardResponseType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCardStatus.swift b/Sources/HealthCardAccess/HealthCardStatus.swift index 4595133..e3eeed3 100644 --- a/Sources/HealthCardAccess/HealthCardStatus.swift +++ b/Sources/HealthCardAccess/HealthCardStatus.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCardType.swift b/Sources/HealthCardAccess/HealthCardType.swift index dafbc2c..3ed97e7 100644 --- a/Sources/HealthCardAccess/HealthCardType.swift +++ b/Sources/HealthCardAccess/HealthCardType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCards/CardFileSystem/EgkFileSystem.swift b/Sources/HealthCardAccess/HealthCards/CardFileSystem/EgkFileSystem.swift index 67ca0bb..e78c282 100644 --- a/Sources/HealthCardAccess/HealthCards/CardFileSystem/EgkFileSystem.swift +++ b/Sources/HealthCardAccess/HealthCards/CardFileSystem/EgkFileSystem.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCards/CardFileSystem/HbaFileSystem.swift b/Sources/HealthCardAccess/HealthCards/CardFileSystem/HbaFileSystem.swift index 53a4147..7a43db9 100644 --- a/Sources/HealthCardAccess/HealthCards/CardFileSystem/HbaFileSystem.swift +++ b/Sources/HealthCardAccess/HealthCards/CardFileSystem/HbaFileSystem.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCards/CardFileSystem/HealthCardFileSystemType.swift b/Sources/HealthCardAccess/HealthCards/CardFileSystem/HealthCardFileSystemType.swift index 4200bda..5a7758c 100644 --- a/Sources/HealthCardAccess/HealthCards/CardFileSystem/HealthCardFileSystemType.swift +++ b/Sources/HealthCardAccess/HealthCards/CardFileSystem/HealthCardFileSystemType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/HealthCards/CardFileSystem/SmcbFileSystem.swift b/Sources/HealthCardAccess/HealthCards/CardFileSystem/SmcbFileSystem.swift index 91d8bf1..47781ee 100644 --- a/Sources/HealthCardAccess/HealthCards/CardFileSystem/SmcbFileSystem.swift +++ b/Sources/HealthCardAccess/HealthCards/CardFileSystem/SmcbFileSystem.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Models/CAN.swift b/Sources/HealthCardAccess/Models/CAN.swift index 7767acf..e1a03e0 100644 --- a/Sources/HealthCardAccess/Models/CAN.swift +++ b/Sources/HealthCardAccess/Models/CAN.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Models/CardGeneration.swift b/Sources/HealthCardAccess/Models/CardGeneration.swift index d544ce2..233dccb 100644 --- a/Sources/HealthCardAccess/Models/CardGeneration.swift +++ b/Sources/HealthCardAccess/Models/CardGeneration.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Models/CardVersion2.swift b/Sources/HealthCardAccess/Models/CardVersion2.swift index e71adc7..a2acf7b 100644 --- a/Sources/HealthCardAccess/Models/CardVersion2.swift +++ b/Sources/HealthCardAccess/Models/CardVersion2.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Models/CertificateInfo.swift b/Sources/HealthCardAccess/Models/CertificateInfo.swift index 05ce8cd..545242f 100644 --- a/Sources/HealthCardAccess/Models/CertificateInfo.swift +++ b/Sources/HealthCardAccess/Models/CertificateInfo.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Models/ECCurveInfo.swift b/Sources/HealthCardAccess/Models/ECCurveInfo.swift index a8b8e2a..f845329 100644 --- a/Sources/HealthCardAccess/Models/ECCurveInfo.swift +++ b/Sources/HealthCardAccess/Models/ECCurveInfo.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Models/SignatureAlgorithm.swift b/Sources/HealthCardAccess/Models/SignatureAlgorithm.swift index a74a90c..e35b5e4 100644 --- a/Sources/HealthCardAccess/Models/SignatureAlgorithm.swift +++ b/Sources/HealthCardAccess/Models/SignatureAlgorithm.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Responses/HealthCardResponse.swift b/Sources/HealthCardAccess/Responses/HealthCardResponse.swift index b10e479..071ea3c 100644 --- a/Sources/HealthCardAccess/Responses/HealthCardResponse.swift +++ b/Sources/HealthCardAccess/Responses/HealthCardResponse.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardAccess/Responses/ResponseStatus.swift b/Sources/HealthCardAccess/Responses/ResponseStatus.swift index dc22c21..5bf97a2 100644 --- a/Sources/HealthCardAccess/Responses/ResponseStatus.swift +++ b/Sources/HealthCardAccess/Responses/ResponseStatus.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Authentication/HealthCardType+Authenticate.swift b/Sources/HealthCardControl/Authentication/HealthCardType+Authenticate.swift index 9b9c3e6..7ae3b05 100644 --- a/Sources/HealthCardControl/Authentication/HealthCardType+Authenticate.swift +++ b/Sources/HealthCardControl/Authentication/HealthCardType+Authenticate.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Authentication/HealthCardType+ChangeReferenceData.swift b/Sources/HealthCardControl/Authentication/HealthCardType+ChangeReferenceData.swift index 69f08b7..ea50e83 100644 --- a/Sources/HealthCardControl/Authentication/HealthCardType+ChangeReferenceData.swift +++ b/Sources/HealthCardControl/Authentication/HealthCardType+ChangeReferenceData.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Authentication/HealthCardType+ESIGN.swift b/Sources/HealthCardControl/Authentication/HealthCardType+ESIGN.swift index 7faab09..9d8ac3a 100644 --- a/Sources/HealthCardControl/Authentication/HealthCardType+ESIGN.swift +++ b/Sources/HealthCardControl/Authentication/HealthCardType+ESIGN.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Authentication/HealthCardType+ResetRetryCounter.swift b/Sources/HealthCardControl/Authentication/HealthCardType+ResetRetryCounter.swift index fc35f98..5111655 100644 --- a/Sources/HealthCardControl/Authentication/HealthCardType+ResetRetryCounter.swift +++ b/Sources/HealthCardControl/Authentication/HealthCardType+ResetRetryCounter.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Authentication/HealthCardType+VerifyPin.swift b/Sources/HealthCardControl/Authentication/HealthCardType+VerifyPin.swift index 1a09a83..ced30e1 100644 --- a/Sources/HealthCardControl/Authentication/HealthCardType+VerifyPin.swift +++ b/Sources/HealthCardControl/Authentication/HealthCardType+VerifyPin.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Authentication/ResponseStatus+WrongSecret.swift b/Sources/HealthCardControl/Authentication/ResponseStatus+WrongSecret.swift index ac5259d..54abcc3 100644 --- a/Sources/HealthCardControl/Authentication/ResponseStatus+WrongSecret.swift +++ b/Sources/HealthCardControl/Authentication/ResponseStatus+WrongSecret.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Crypto/AES.swift b/Sources/HealthCardControl/Crypto/AES.swift index aca4bf8..27b7609 100644 --- a/Sources/HealthCardControl/Crypto/AES.swift +++ b/Sources/HealthCardControl/Crypto/AES.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Crypto/Data+Secure.swift b/Sources/HealthCardControl/Crypto/Data+Secure.swift index 3579c3f..fbc1472 100644 --- a/Sources/HealthCardControl/Crypto/Data+Secure.swift +++ b/Sources/HealthCardControl/Crypto/Data+Secure.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Crypto/KeyDerivationFunction.swift b/Sources/HealthCardControl/Crypto/KeyDerivationFunction.swift index 06b563f..a46d773 100644 --- a/Sources/HealthCardControl/Crypto/KeyDerivationFunction.swift +++ b/Sources/HealthCardControl/Crypto/KeyDerivationFunction.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Operations/CardChannelType+CardAID.swift b/Sources/HealthCardControl/Operations/CardChannelType+CardAID.swift index e98bc3d..0d9b81c 100644 --- a/Sources/HealthCardControl/Operations/CardChannelType+CardAID.swift +++ b/Sources/HealthCardControl/Operations/CardChannelType+CardAID.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Operations/CardChannelType+CardAccess.swift b/Sources/HealthCardControl/Operations/CardChannelType+CardAccess.swift index d289a56..ca9dabb 100644 --- a/Sources/HealthCardControl/Operations/CardChannelType+CardAccess.swift +++ b/Sources/HealthCardControl/Operations/CardChannelType+CardAccess.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Operations/CardChannelType+Version.swift b/Sources/HealthCardControl/Operations/CardChannelType+Version.swift index b9e7768..c128e35 100644 --- a/Sources/HealthCardControl/Operations/CardChannelType+Version.swift +++ b/Sources/HealthCardControl/Operations/CardChannelType+Version.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Operations/HealthCard+Error.swift b/Sources/HealthCardControl/Operations/HealthCard+Error.swift index 073671b..ab0cfe1 100644 --- a/Sources/HealthCardControl/Operations/HealthCard+Error.swift +++ b/Sources/HealthCardControl/Operations/HealthCard+Error.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/Operations/HealthCardType+ReadFile.swift b/Sources/HealthCardControl/Operations/HealthCardType+ReadFile.swift index c065a53..c880631 100644 --- a/Sources/HealthCardControl/Operations/HealthCardType+ReadFile.swift +++ b/Sources/HealthCardControl/Operations/HealthCardType+ReadFile.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/SecureMessaging/AES128PaceKey.swift b/Sources/HealthCardControl/SecureMessaging/AES128PaceKey.swift index 6adbfd1..d741258 100644 --- a/Sources/HealthCardControl/SecureMessaging/AES128PaceKey.swift +++ b/Sources/HealthCardControl/SecureMessaging/AES128PaceKey.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/SecureMessaging/CardType+SecureMessaging.swift b/Sources/HealthCardControl/SecureMessaging/CardType+SecureMessaging.swift index 9db4d62..0a9d83f 100644 --- a/Sources/HealthCardControl/SecureMessaging/CardType+SecureMessaging.swift +++ b/Sources/HealthCardControl/SecureMessaging/CardType+SecureMessaging.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/SecureMessaging/KeyAgreement.swift b/Sources/HealthCardControl/SecureMessaging/KeyAgreement.swift index 384dc9b..422de9f 100644 --- a/Sources/HealthCardControl/SecureMessaging/KeyAgreement.swift +++ b/Sources/HealthCardControl/SecureMessaging/KeyAgreement.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/SecureMessaging/SecureCardChannel.swift b/Sources/HealthCardControl/SecureMessaging/SecureCardChannel.swift index 5d7fb36..ca81aad 100644 --- a/Sources/HealthCardControl/SecureMessaging/SecureCardChannel.swift +++ b/Sources/HealthCardControl/SecureMessaging/SecureCardChannel.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/SecureMessaging/SecureHealthCard.swift b/Sources/HealthCardControl/SecureMessaging/SecureHealthCard.swift index 23cc9cf..8be4f15 100644 --- a/Sources/HealthCardControl/SecureMessaging/SecureHealthCard.swift +++ b/Sources/HealthCardControl/SecureMessaging/SecureHealthCard.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/HealthCardControl/SecureMessaging/SecureMessaging.swift b/Sources/HealthCardControl/SecureMessaging/SecureMessaging.swift index a3f5781..ce9a92d 100644 --- a/Sources/HealthCardControl/SecureMessaging/SecureMessaging.swift +++ b/Sources/HealthCardControl/SecureMessaging/SecureMessaging.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/Helper/CommandLogger.swift b/Sources/Helper/CommandLogger.swift index 3966c43..1d19cae 100644 --- a/Sources/Helper/CommandLogger.swift +++ b/Sources/Helper/CommandLogger.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCCardReaderProvider/Card/NFCCard.swift b/Sources/NFCCardReaderProvider/Card/NFCCard.swift index 24acf6c..e61c819 100644 --- a/Sources/NFCCardReaderProvider/Card/NFCCard.swift +++ b/Sources/NFCCardReaderProvider/Card/NFCCard.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCCardReaderProvider/Card/NFCCardChannel.swift b/Sources/NFCCardReaderProvider/Card/NFCCardChannel.swift index 683a1ef..0290bb6 100644 --- a/Sources/NFCCardReaderProvider/Card/NFCCardChannel.swift +++ b/Sources/NFCCardReaderProvider/Card/NFCCardChannel.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCCardReaderProvider/Card/NFCCardError.swift b/Sources/NFCCardReaderProvider/Card/NFCCardError.swift index 8ca5967..acd83a8 100644 --- a/Sources/NFCCardReaderProvider/Card/NFCCardError.swift +++ b/Sources/NFCCardReaderProvider/Card/NFCCardError.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCCardReaderProvider/Card/NFCISO7816APDU+CommandType.swift b/Sources/NFCCardReaderProvider/Card/NFCISO7816APDU+CommandType.swift index 298349a..2619975 100644 --- a/Sources/NFCCardReaderProvider/Card/NFCISO7816APDU+CommandType.swift +++ b/Sources/NFCCardReaderProvider/Card/NFCISO7816APDU+CommandType.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCCardReaderProvider/Reader/CoreNFCError.swift b/Sources/NFCCardReaderProvider/Reader/CoreNFCError.swift index bf2faed..3691f49 100644 --- a/Sources/NFCCardReaderProvider/Reader/CoreNFCError.swift +++ b/Sources/NFCCardReaderProvider/Reader/CoreNFCError.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCCardReaderProvider/Reader/NFCTagReaderSession+Publisher.swift b/Sources/NFCCardReaderProvider/Reader/NFCTagReaderSession+Publisher.swift index fb4c195..b95fd84 100644 --- a/Sources/NFCCardReaderProvider/Reader/NFCTagReaderSession+Publisher.swift +++ b/Sources/NFCCardReaderProvider/Reader/NFCTagReaderSession+Publisher.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/AppDelegate.swift b/Sources/NFCDemo/AppDelegate.swift index 2d16853..d138a78 100644 --- a/Sources/NFCDemo/AppDelegate.swift +++ b/Sources/NFCDemo/AppDelegate.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/CallOnMainThread.swift b/Sources/NFCDemo/CallOnMainThread.swift index 9f29b38..1eaa3ce 100644 --- a/Sources/NFCDemo/CallOnMainThread.swift +++ b/Sources/NFCDemo/CallOnMainThread.swift @@ -1,13 +1,13 @@ // swiftlint:disable:this file_name // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/EnvironmentValues+ChangeReferenceDataController.swift b/Sources/NFCDemo/EnvironmentValues+ChangeReferenceDataController.swift index 7750942..929738f 100644 --- a/Sources/NFCDemo/EnvironmentValues+ChangeReferenceDataController.swift +++ b/Sources/NFCDemo/EnvironmentValues+ChangeReferenceDataController.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/EnvironmentValues+LoginController.swift b/Sources/NFCDemo/EnvironmentValues+LoginController.swift index 576b1af..dc966d5 100644 --- a/Sources/NFCDemo/EnvironmentValues+LoginController.swift +++ b/Sources/NFCDemo/EnvironmentValues+LoginController.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/EnvironmentValues+ResetPINController.swift b/Sources/NFCDemo/EnvironmentValues+ResetPINController.swift index 9dbe72f..954c5f1 100644 --- a/Sources/NFCDemo/EnvironmentValues+ResetPINController.swift +++ b/Sources/NFCDemo/EnvironmentValues+ResetPINController.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/KeyboardHeight.swift b/Sources/NFCDemo/KeyboardHeight.swift index 34e6f49..2f90e91 100644 --- a/Sources/NFCDemo/KeyboardHeight.swift +++ b/Sources/NFCDemo/KeyboardHeight.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/NFC/CardReaderProviderApi+LocalizedError.swift b/Sources/NFCDemo/NFC/CardReaderProviderApi+LocalizedError.swift index 5417a26..1b21463 100644 --- a/Sources/NFCDemo/NFC/CardReaderProviderApi+LocalizedError.swift +++ b/Sources/NFCDemo/NFC/CardReaderProviderApi+LocalizedError.swift @@ -1,13 +1,13 @@ // swiftlint:disable:this file_name // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/NFC/HealthCardAccess+LocalizedError.swift b/Sources/NFCDemo/NFC/HealthCardAccess+LocalizedError.swift index d8b5f22..e7b3608 100644 --- a/Sources/NFCDemo/NFC/HealthCardAccess+LocalizedError.swift +++ b/Sources/NFCDemo/NFC/HealthCardAccess+LocalizedError.swift @@ -1,13 +1,13 @@ // swiftlint:disable:this file_name // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/NFC/HealthCardControl+LocalizedError.swift b/Sources/NFCDemo/NFC/HealthCardControl+LocalizedError.swift index a054cde..4b45753 100644 --- a/Sources/NFCDemo/NFC/HealthCardControl+LocalizedError.swift +++ b/Sources/NFCDemo/NFC/HealthCardControl+LocalizedError.swift @@ -1,13 +1,13 @@ // swiftlint:disable:this file_name // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/NFC/NFCCardReaderProvider+LocalizedError.swift b/Sources/NFCDemo/NFC/NFCCardReaderProvider+LocalizedError.swift index 1a163b5..c3eb2d6 100644 --- a/Sources/NFCDemo/NFC/NFCCardReaderProvider+LocalizedError.swift +++ b/Sources/NFCDemo/NFC/NFCCardReaderProvider+LocalizedError.swift @@ -1,13 +1,13 @@ // swiftlint:disable:this file_name // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/NFC/NFCChangeReferenceDataController.swift b/Sources/NFCDemo/NFC/NFCChangeReferenceDataController.swift index 3c05f83..2ed374d 100644 --- a/Sources/NFCDemo/NFC/NFCChangeReferenceDataController.swift +++ b/Sources/NFCDemo/NFC/NFCChangeReferenceDataController.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/NFC/NFCLoginController.swift b/Sources/NFCDemo/NFC/NFCLoginController.swift index a57ab59..1c6bea9 100644 --- a/Sources/NFCDemo/NFC/NFCLoginController.swift +++ b/Sources/NFCDemo/NFC/NFCLoginController.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/NFC/NFCResetRetryCounterController.swift b/Sources/NFCDemo/NFC/NFCResetRetryCounterController.swift index 3901b51..4c353b0 100644 --- a/Sources/NFCDemo/NFC/NFCResetRetryCounterController.swift +++ b/Sources/NFCDemo/NFC/NFCResetRetryCounterController.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Resources/base.xcconfig b/Sources/NFCDemo/Resources/base.xcconfig index 1c62da5..e5b08d8 100644 --- a/Sources/NFCDemo/Resources/base.xcconfig +++ b/Sources/NFCDemo/Resources/base.xcconfig @@ -1,3 +1,4 @@ +DEVELOPMENT_TEAM = A9FL89PFFL CODE_SIGN_ENTITLEMENTS = Sources/NFCDemo/Resources/NFCDemo.entitlements diff --git a/Sources/NFCDemo/SceneDelegate.swift b/Sources/NFCDemo/SceneDelegate.swift index eea084f..b19153e 100644 --- a/Sources/NFCDemo/SceneDelegate.swift +++ b/Sources/NFCDemo/SceneDelegate.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Colors.swift b/Sources/NFCDemo/Screens/Colors.swift index 2b4663b..6948640 100644 --- a/Sources/NFCDemo/Screens/Colors.swift +++ b/Sources/NFCDemo/Screens/Colors.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/GTextButton.swift b/Sources/NFCDemo/Screens/GTextButton.swift index 5cc7042..de2898f 100644 --- a/Sources/NFCDemo/Screens/GTextButton.swift +++ b/Sources/NFCDemo/Screens/GTextButton.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/ActivityViewController.swift b/Sources/NFCDemo/Screens/Registration/ActivityViewController.swift index 8e16c58..0fc2773 100644 --- a/Sources/NFCDemo/Screens/Registration/ActivityViewController.swift +++ b/Sources/NFCDemo/Screens/Registration/ActivityViewController.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/ChangeReferenceDataSetNewPINView.swift b/Sources/NFCDemo/Screens/Registration/ChangeReferenceDataSetNewPINView.swift index 4d7b883..9876515 100644 --- a/Sources/NFCDemo/Screens/Registration/ChangeReferenceDataSetNewPINView.swift +++ b/Sources/NFCDemo/Screens/Registration/ChangeReferenceDataSetNewPINView.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/NFCChangeReferenceDataViewModel.swift b/Sources/NFCDemo/Screens/Registration/NFCChangeReferenceDataViewModel.swift index 571eafe..c5f0bf0 100644 --- a/Sources/NFCDemo/Screens/Registration/NFCChangeReferenceDataViewModel.swift +++ b/Sources/NFCDemo/Screens/Registration/NFCChangeReferenceDataViewModel.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/NFCLoginViewModel.swift b/Sources/NFCDemo/Screens/Registration/NFCLoginViewModel.swift index 0d0128b..89c2ddf 100644 --- a/Sources/NFCDemo/Screens/Registration/NFCLoginViewModel.swift +++ b/Sources/NFCDemo/Screens/Registration/NFCLoginViewModel.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/NFCResetRetryCounterViewModel.swift b/Sources/NFCDemo/Screens/Registration/NFCResetRetryCounterViewModel.swift index f9a5b46..d83e3f4 100644 --- a/Sources/NFCDemo/Screens/Registration/NFCResetRetryCounterViewModel.swift +++ b/Sources/NFCDemo/Screens/Registration/NFCResetRetryCounterViewModel.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/ReadingResultsView.swift b/Sources/NFCDemo/Screens/Registration/ReadingResultsView.swift index 38ca71f..650f226 100644 --- a/Sources/NFCDemo/Screens/Registration/ReadingResultsView.swift +++ b/Sources/NFCDemo/Screens/Registration/ReadingResultsView.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/RegisterCANView.swift b/Sources/NFCDemo/Screens/Registration/RegisterCANView.swift index 4c2a43c..b179892 100644 --- a/Sources/NFCDemo/Screens/Registration/RegisterCANView.swift +++ b/Sources/NFCDemo/Screens/Registration/RegisterCANView.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/RegisterPINView.swift b/Sources/NFCDemo/Screens/Registration/RegisterPINView.swift index 1f49098..95511bc 100644 --- a/Sources/NFCDemo/Screens/Registration/RegisterPINView.swift +++ b/Sources/NFCDemo/Screens/Registration/RegisterPINView.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/ResetRetryCounterView.swift b/Sources/NFCDemo/Screens/Registration/ResetRetryCounterView.swift index b6b3b69..713bac3 100644 --- a/Sources/NFCDemo/Screens/Registration/ResetRetryCounterView.swift +++ b/Sources/NFCDemo/Screens/Registration/ResetRetryCounterView.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/ResetRetryCounterWithNewPINView.swift b/Sources/NFCDemo/Screens/Registration/ResetRetryCounterWithNewPINView.swift index 1520fab..86fb210 100644 --- a/Sources/NFCDemo/Screens/Registration/ResetRetryCounterWithNewPINView.swift +++ b/Sources/NFCDemo/Screens/Registration/ResetRetryCounterWithNewPINView.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/Registration/StartNFCView.swift b/Sources/NFCDemo/Screens/Registration/StartNFCView.swift index 4081724..c4a6f1d 100644 --- a/Sources/NFCDemo/Screens/Registration/StartNFCView.swift +++ b/Sources/NFCDemo/Screens/Registration/StartNFCView.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Sources/NFCDemo/Screens/ViewState.swift b/Sources/NFCDemo/Screens/ViewState.swift index 3509533..411ccf5 100644 --- a/Sources/NFCDemo/Screens/ViewState.swift +++ b/Sources/NFCDemo/Screens/ViewState.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/CardReaderAccessTests/CardReaderControllerManagerTest.swift b/Tests/CardReaderAccessTests/CardReaderControllerManagerTest.swift index d2959c1..ea51984 100644 --- a/Tests/CardReaderAccessTests/CardReaderControllerManagerTest.swift +++ b/Tests/CardReaderAccessTests/CardReaderControllerManagerTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/CardReaderAccessTests/XCTestManifests.swift b/Tests/CardReaderAccessTests/XCTestManifests.swift index bb8578e..ce75c4f 100644 --- a/Tests/CardReaderAccessTests/XCTestManifests.swift +++ b/Tests/CardReaderAccessTests/XCTestManifests.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/CardReaderAccessTests/internal/SwiftExtReflectionTest.swift b/Tests/CardReaderAccessTests/internal/SwiftExtReflectionTest.swift index 8020b79..191d505 100644 --- a/Tests/CardReaderAccessTests/internal/SwiftExtReflectionTest.swift +++ b/Tests/CardReaderAccessTests/internal/SwiftExtReflectionTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/CardReaderProviderApiTests/Command/APDUCommandTest.swift b/Tests/CardReaderProviderApiTests/Command/APDUCommandTest.swift index dba3ff8..3fa5c53 100644 --- a/Tests/CardReaderProviderApiTests/Command/APDUCommandTest.swift +++ b/Tests/CardReaderProviderApiTests/Command/APDUCommandTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/CardReaderProviderApiTests/Command/APDUResponseTest.swift b/Tests/CardReaderProviderApiTests/Command/APDUResponseTest.swift index a0e6244..5bc0c0b 100644 --- a/Tests/CardReaderProviderApiTests/Command/APDUResponseTest.swift +++ b/Tests/CardReaderProviderApiTests/Command/APDUResponseTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/CardReaderProviderApiTests/Command/CommandTypeExtLogicChannelTests.swift b/Tests/CardReaderProviderApiTests/Command/CommandTypeExtLogicChannelTests.swift index 52c55ad..1e664cd 100644 --- a/Tests/CardReaderProviderApiTests/Command/CommandTypeExtLogicChannelTests.swift +++ b/Tests/CardReaderProviderApiTests/Command/CommandTypeExtLogicChannelTests.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/CardReaderProviderApiTests/Reader/CardReaderTest.swift b/Tests/CardReaderProviderApiTests/Reader/CardReaderTest.swift index 0c3e4bc..1413ffe 100644 --- a/Tests/CardReaderProviderApiTests/Reader/CardReaderTest.swift +++ b/Tests/CardReaderProviderApiTests/Reader/CardReaderTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/CardObjects/ApplicationIdentifierTest.swift b/Tests/HealthCardAccessTests/CardObjects/ApplicationIdentifierTest.swift index a0eb69e..331dd22 100644 --- a/Tests/HealthCardAccessTests/CardObjects/ApplicationIdentifierTest.swift +++ b/Tests/HealthCardAccessTests/CardObjects/ApplicationIdentifierTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/CardObjects/FileControlParameterTest.swift b/Tests/HealthCardAccessTests/CardObjects/FileControlParameterTest.swift index 4cfdcc6..85c46b8 100644 --- a/Tests/HealthCardAccessTests/CardObjects/FileControlParameterTest.swift +++ b/Tests/HealthCardAccessTests/CardObjects/FileControlParameterTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/CardObjects/FileIdentifierTest.swift b/Tests/HealthCardAccessTests/CardObjects/FileIdentifierTest.swift index 4b922d6..ca28e34 100644 --- a/Tests/HealthCardAccessTests/CardObjects/FileIdentifierTest.swift +++ b/Tests/HealthCardAccessTests/CardObjects/FileIdentifierTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/CardObjects/Format2PinTest.swift b/Tests/HealthCardAccessTests/CardObjects/Format2PinTest.swift index 1bdae3a..ab2f3f0 100644 --- a/Tests/HealthCardAccessTests/CardObjects/Format2PinTest.swift +++ b/Tests/HealthCardAccessTests/CardObjects/Format2PinTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/CardObjects/GemCvCertificateTest.swift b/Tests/HealthCardAccessTests/CardObjects/GemCvCertificateTest.swift index ec8077f..6bc096a 100644 --- a/Tests/HealthCardAccessTests/CardObjects/GemCvCertificateTest.swift +++ b/Tests/HealthCardAccessTests/CardObjects/GemCvCertificateTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/CardObjects/KeyTest.swift b/Tests/HealthCardAccessTests/CardObjects/KeyTest.swift index b71d8e9..dd6da94 100644 --- a/Tests/HealthCardAccessTests/CardObjects/KeyTest.swift +++ b/Tests/HealthCardAccessTests/CardObjects/KeyTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/CardObjects/PasswordTest.swift b/Tests/HealthCardAccessTests/CardObjects/PasswordTest.swift index 24bb12a..38685d0 100644 --- a/Tests/HealthCardAccessTests/CardObjects/PasswordTest.swift +++ b/Tests/HealthCardAccessTests/CardObjects/PasswordTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/CardObjects/ShortFileIdentifierTest.swift b/Tests/HealthCardAccessTests/CardObjects/ShortFileIdentifierTest.swift index 262d19a..0281b30 100644 --- a/Tests/HealthCardAccessTests/CardObjects/ShortFileIdentifierTest.swift +++ b/Tests/HealthCardAccessTests/CardObjects/ShortFileIdentifierTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/DataExtNormalize.swift b/Tests/HealthCardAccessTests/Commands/DataExtNormalize.swift index abea8b0..a3797df 100644 --- a/Tests/HealthCardAccessTests/Commands/DataExtNormalize.swift +++ b/Tests/HealthCardAccessTests/Commands/DataExtNormalize.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/HCCExtAccessStructuredDataTest.swift b/Tests/HealthCardAccessTests/Commands/HCCExtAccessStructuredDataTest.swift index 3c5f100..13dcac2 100644 --- a/Tests/HealthCardAccessTests/Commands/HCCExtAccessStructuredDataTest.swift +++ b/Tests/HealthCardAccessTests/Commands/HCCExtAccessStructuredDataTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/HCCExtAccessTransparentDataTest.swift b/Tests/HealthCardAccessTests/Commands/HCCExtAccessTransparentDataTest.swift index 9e790a0..0f29030 100644 --- a/Tests/HealthCardAccessTests/Commands/HCCExtAccessTransparentDataTest.swift +++ b/Tests/HealthCardAccessTests/Commands/HCCExtAccessTransparentDataTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/HCCExtAuthenticationTest.swift b/Tests/HealthCardAccessTests/Commands/HCCExtAuthenticationTest.swift index 3813fda..a6caa9a 100644 --- a/Tests/HealthCardAccessTests/Commands/HCCExtAuthenticationTest.swift +++ b/Tests/HealthCardAccessTests/Commands/HCCExtAuthenticationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/HCCExtManageSETest.swift b/Tests/HealthCardAccessTests/Commands/HCCExtManageSETest.swift index 682cdee..be17e16 100644 --- a/Tests/HealthCardAccessTests/Commands/HCCExtManageSETest.swift +++ b/Tests/HealthCardAccessTests/Commands/HCCExtManageSETest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/HCCExtMiscTest.swift b/Tests/HealthCardAccessTests/Commands/HCCExtMiscTest.swift index 10135ba..a888c6b 100644 --- a/Tests/HealthCardAccessTests/Commands/HCCExtMiscTest.swift +++ b/Tests/HealthCardAccessTests/Commands/HCCExtMiscTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/HCCExtObjectSystemManagementTest.swift b/Tests/HealthCardAccessTests/Commands/HCCExtObjectSystemManagementTest.swift index ab85d78..26e9736 100644 --- a/Tests/HealthCardAccessTests/Commands/HCCExtObjectSystemManagementTest.swift +++ b/Tests/HealthCardAccessTests/Commands/HCCExtObjectSystemManagementTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/HCCExtPerformSecurityOperationTest.swift b/Tests/HealthCardAccessTests/Commands/HCCExtPerformSecurityOperationTest.swift index a203ed0..c86dbb8 100644 --- a/Tests/HealthCardAccessTests/Commands/HCCExtPerformSecurityOperationTest.swift +++ b/Tests/HealthCardAccessTests/Commands/HCCExtPerformSecurityOperationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. @@ -272,12 +272,6 @@ final class HCCExtPerformSecurityOperationTest: XCTestCase { key: "ansix9p256r1_ecpubkey.dat", expected: "ansix9p256r1_expected_apdu.dat", pass: true, throw: false), (test: "ansix9p384r1", hash: "ansix9p384r1_hash.dat", normalized: "ansix9p384r1_signature_normalized.dat", key: "ansix9p384r1_ecpubkey.dat", expected: "ansix9p384r1_expected_apdu.dat", pass: true, throw: false), - (test: "brainpoolP256r1", hash: "brainpoolP256r1_hash.dat", - normalized: "brainpoolP256r1_signature_normalized.dat", key: "brainpoolP256r1_ecpubkey.dat", - expected: "brainpoolP256r1_expected_apdu.dat", pass: false, throw: false), - (test: "brainpoolP384r1", hash: "brainpoolP384r1_hash.dat", - normalized: "brainpoolP384r1_signature_normalized.dat", key: "brainpoolP384r1_ecpubkey.dat", - expected: "brainpoolP384r1_expected_apdu.dat", pass: false, throw: false), (test: "brainpoolP512r1", hash: "brainpoolP512r1_hash.dat", normalized: "brainpoolP512r1_signature_normalized.dat", key: "brainpoolP512r1_ecpubkey.dat", expected: "brainpoolP512r1_expected_apdu.dat", pass: false, throw: true), @@ -413,8 +407,8 @@ final class HCCExtPerformSecurityOperationTest: XCTestCase { } func testPsoVerifyDSA_wrong_hashsize() { - let filename = "ec_pub_key.dat" - let ecKeyData = filename.loadAsResource(at: "EC", bundle: bundle) + let filename = "ansix9p256r1_ecpubkey.dat" + let ecKeyData = filename.loadAsResource(at: "DSA", bundle: bundle) let signature = Data([UInt8](repeating: 0xF0, count: 64)) let hash = Data([UInt8](repeating: 0xEF, count: 30)) @@ -422,7 +416,10 @@ final class HCCExtPerformSecurityOperationTest: XCTestCase { var error: Unmanaged? guard let key = SecKeyCreateWithData( ecKeyData as CFData, - [kSecAttrKeyType: kSecAttrKeyTypeEC, kSecAttrKeyClass: kSecAttrKeyClassPublic] as CFDictionary, + [ + kSecAttrKeyType: kSecAttrKeyTypeEC, + kSecAttrKeyClass: kSecAttrKeyClassPublic, + ] as CFDictionary, &error ) else { Nimble.fail("Could not initialize ECPublicKey") @@ -435,8 +432,8 @@ final class HCCExtPerformSecurityOperationTest: XCTestCase { } func testPsoVerifyDSA_wrong_signaturesize() { - let filename = "ec_pub_key.dat" - let ecKeyData = filename.loadAsResource(at: "EC", bundle: bundle) + let filename = "ansix9p256r1_ecpubkey.dat" + let ecKeyData = filename.loadAsResource(at: "DSA", bundle: bundle) let signature = Data([UInt8](repeating: 0xF0, count: 66)) let hash = Data([UInt8](repeating: 0xEF, count: 32)) @@ -457,8 +454,8 @@ final class HCCExtPerformSecurityOperationTest: XCTestCase { } } -func throwError() -> Predicate { - Predicate { actualExpression in +func throwError() -> Nimble.Predicate { + Nimble.Predicate { actualExpression in var actualError: Error? do { _ = try actualExpression.evaluate() diff --git a/Tests/HealthCardAccessTests/Commands/HCCExtUserVerificationTest.swift b/Tests/HealthCardAccessTests/Commands/HCCExtUserVerificationTest.swift index f3350ae..20da344 100644 --- a/Tests/HealthCardAccessTests/Commands/HCCExtUserVerificationTest.swift +++ b/Tests/HealthCardAccessTests/Commands/HCCExtUserVerificationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Commands/HealthCardCommandBuilderTest.swift b/Tests/HealthCardAccessTests/Commands/HealthCardCommandBuilderTest.swift index 13caaff..03067b8 100644 --- a/Tests/HealthCardAccessTests/Commands/HealthCardCommandBuilderTest.swift +++ b/Tests/HealthCardAccessTests/Commands/HealthCardCommandBuilderTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/HealthCardPropertyTypeTest.swift b/Tests/HealthCardAccessTests/HealthCardPropertyTypeTest.swift index 795c343..c5d8e10 100644 --- a/Tests/HealthCardAccessTests/HealthCardPropertyTypeTest.swift +++ b/Tests/HealthCardAccessTests/HealthCardPropertyTypeTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/HealthCardStatusTest.swift b/Tests/HealthCardAccessTests/HealthCardStatusTest.swift index a06fe10..d84e9d2 100644 --- a/Tests/HealthCardAccessTests/HealthCardStatusTest.swift +++ b/Tests/HealthCardAccessTests/HealthCardStatusTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Models/CANTest.swift b/Tests/HealthCardAccessTests/Models/CANTest.swift index 093cc9a..c86e41a 100644 --- a/Tests/HealthCardAccessTests/Models/CANTest.swift +++ b/Tests/HealthCardAccessTests/Models/CANTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Models/CardGenerationTest.swift b/Tests/HealthCardAccessTests/Models/CardGenerationTest.swift index db1dc39..c93140a 100644 --- a/Tests/HealthCardAccessTests/Models/CardGenerationTest.swift +++ b/Tests/HealthCardAccessTests/Models/CardGenerationTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Models/CardVersion2Test.swift b/Tests/HealthCardAccessTests/Models/CardVersion2Test.swift index dd9c076..6074a61 100644 --- a/Tests/HealthCardAccessTests/Models/CardVersion2Test.swift +++ b/Tests/HealthCardAccessTests/Models/CardVersion2Test.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Models/ECCurveInfoTest.swift b/Tests/HealthCardAccessTests/Models/ECCurveInfoTest.swift index 949eafb..9eb9cb0 100644 --- a/Tests/HealthCardAccessTests/Models/ECCurveInfoTest.swift +++ b/Tests/HealthCardAccessTests/Models/ECCurveInfoTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Models/SignatureAlgorithmTest.swift b/Tests/HealthCardAccessTests/Models/SignatureAlgorithmTest.swift index 9a07277..4f9485e 100644 --- a/Tests/HealthCardAccessTests/Models/SignatureAlgorithmTest.swift +++ b/Tests/HealthCardAccessTests/Models/SignatureAlgorithmTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Responses/HealthCardResponseTest.swift b/Tests/HealthCardAccessTests/Responses/HealthCardResponseTest.swift index 3efbfb0..36f29c9 100644 --- a/Tests/HealthCardAccessTests/Responses/HealthCardResponseTest.swift +++ b/Tests/HealthCardAccessTests/Responses/HealthCardResponseTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardAccessTests/Util/String+File.swift b/Tests/HealthCardAccessTests/Util/String+File.swift index 69dc666..05613a4 100644 --- a/Tests/HealthCardAccessTests/Util/String+File.swift +++ b/Tests/HealthCardAccessTests/Util/String+File.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardControlTests/Crypto/AESTests.swift b/Tests/HealthCardControlTests/Crypto/AESTests.swift index 7fbe3ef..99bd995 100644 --- a/Tests/HealthCardControlTests/Crypto/AESTests.swift +++ b/Tests/HealthCardControlTests/Crypto/AESTests.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardControlTests/Crypto/DataSecureTest.swift b/Tests/HealthCardControlTests/Crypto/DataSecureTest.swift index 354e038..51d2201 100644 --- a/Tests/HealthCardControlTests/Crypto/DataSecureTest.swift +++ b/Tests/HealthCardControlTests/Crypto/DataSecureTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardControlTests/Crypto/KeyDerivationFunctionTest.swift b/Tests/HealthCardControlTests/Crypto/KeyDerivationFunctionTest.swift index 0dc5b00..7088365 100644 --- a/Tests/HealthCardControlTests/Crypto/KeyDerivationFunctionTest.swift +++ b/Tests/HealthCardControlTests/Crypto/KeyDerivationFunctionTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardControlTests/SecureMessaging/AES128PaceKeyTest.swift b/Tests/HealthCardControlTests/SecureMessaging/AES128PaceKeyTest.swift index af8cc31..30d634c 100644 --- a/Tests/HealthCardControlTests/SecureMessaging/AES128PaceKeyTest.swift +++ b/Tests/HealthCardControlTests/SecureMessaging/AES128PaceKeyTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardControlTests/SecureMessaging/HealthCardTypeExtESIGNTest.swift b/Tests/HealthCardControlTests/SecureMessaging/HealthCardTypeExtESIGNTest.swift index 800833d..013a8bd 100644 --- a/Tests/HealthCardControlTests/SecureMessaging/HealthCardTypeExtESIGNTest.swift +++ b/Tests/HealthCardControlTests/SecureMessaging/HealthCardTypeExtESIGNTest.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/HealthCardControlTests/SecureMessaging/ResponseType+Bytes.swift b/Tests/HealthCardControlTests/SecureMessaging/ResponseType+Bytes.swift index fc73cf5..ed0f85c 100644 --- a/Tests/HealthCardControlTests/SecureMessaging/ResponseType+Bytes.swift +++ b/Tests/HealthCardControlTests/SecureMessaging/ResponseType+Bytes.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/NFCCardReaderProviderTests/Test.swift b/Tests/NFCCardReaderProviderTests/Test.swift index c4f6e9a..514bb99 100644 --- a/Tests/NFCCardReaderProviderTests/Test.swift +++ b/Tests/NFCCardReaderProviderTests/Test.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/NFCDemoTests/ReadingResultsViewSnapshotTests.swift b/Tests/NFCDemoTests/ReadingResultsViewSnapshotTests.swift index 852fb10..229c10b 100644 --- a/Tests/NFCDemoTests/ReadingResultsViewSnapshotTests.swift +++ b/Tests/NFCDemoTests/ReadingResultsViewSnapshotTests.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/NFCDemoTests/RegisterCANViewSnapshotTests.swift b/Tests/NFCDemoTests/RegisterCANViewSnapshotTests.swift index 1105aae..bf8fad3 100644 --- a/Tests/NFCDemoTests/RegisterCANViewSnapshotTests.swift +++ b/Tests/NFCDemoTests/RegisterCANViewSnapshotTests.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/NFCDemoTests/RegisterPINViewSnapshotTests.swift b/Tests/NFCDemoTests/RegisterPINViewSnapshotTests.swift index 5d89d1b..4eb0b6a 100644 --- a/Tests/NFCDemoTests/RegisterPINViewSnapshotTests.swift +++ b/Tests/NFCDemoTests/RegisterPINViewSnapshotTests.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/NFCDemoTests/StartNFCViewSnapshotTests.swift b/Tests/NFCDemoTests/StartNFCViewSnapshotTests.swift index b67eae6..e30caa9 100644 --- a/Tests/NFCDemoTests/StartNFCViewSnapshotTests.swift +++ b/Tests/NFCDemoTests/StartNFCViewSnapshotTests.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/NFCDemoTests/XCTestCase+SnapshotHelper.swift b/Tests/NFCDemoTests/XCTestCase+SnapshotHelper.swift index b1f86b0..e56f9aa 100644 --- a/Tests/NFCDemoTests/XCTestCase+SnapshotHelper.swift +++ b/Tests/NFCDemoTests/XCTestCase+SnapshotHelper.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.accessibilityBig.png b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.accessibilityBig.png index 7f33cb7..0a34f81 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.accessibilityBig.png and b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.accessibilityBig.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.accessibilitySmall.png b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.accessibilitySmall.png index 7f9b90f..b84f5c1 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.accessibilitySmall.png and b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.accessibilitySmall.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.dark.png b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.dark.png index b5ea769..bc29a5b 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.dark.png and b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.dark.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.light.png b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.light.png index fa34986..04b5f7e 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.light.png and b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsDetailViewSnapshotTests.light.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.accessibilityBig.png b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.accessibilityBig.png index 9e002c2..3bc82bb 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.accessibilityBig.png and b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.accessibilityBig.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.accessibilitySmall.png b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.accessibilitySmall.png index 5795432..2642c55 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.accessibilitySmall.png and b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.accessibilitySmall.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.dark.png b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.dark.png index ae19b48..2907cbd 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.dark.png and b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.dark.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.light.png b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.light.png index f256cb6..1732153 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.light.png and b/Tests/NFCDemoTests/__Snapshots__/ReadingResultsViewSnapshotTests/testReadingResultsViewSnapshotTests.light.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.accessibilityBig.png b/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.accessibilityBig.png index 0829f73..bacb137 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.accessibilityBig.png and b/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.accessibilityBig.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.accessibilitySmall.png b/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.accessibilitySmall.png index 72aa705..7ba591c 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.accessibilitySmall.png and b/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.accessibilitySmall.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.dark.png b/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.dark.png index 127afc3..446b896 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.dark.png and b/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.dark.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.light.png b/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.light.png index b6e60f0..ef391fc 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.light.png and b/Tests/NFCDemoTests/__Snapshots__/RegisterCANViewSnapshotTests/testRegisterCANViewSnapshotTests.light.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.accessibilityBig.png b/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.accessibilityBig.png index c0aee3e..741b148 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.accessibilityBig.png and b/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.accessibilityBig.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.accessibilitySmall.png b/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.accessibilitySmall.png index 3c3b9c8..9e59753 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.accessibilitySmall.png and b/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.accessibilitySmall.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.dark.png b/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.dark.png index 2004796..f4f6af2 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.dark.png and b/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.dark.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.light.png b/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.light.png index 831b125..51e818f 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.light.png and b/Tests/NFCDemoTests/__Snapshots__/RegisterPINViewSnapshotTests/testRegisterPINViewSnapshotTests.light.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.accessibilityBig.png b/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.accessibilityBig.png index 2dbfff3..563e337 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.accessibilityBig.png and b/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.accessibilityBig.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.accessibilitySmall.png b/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.accessibilitySmall.png index 110fe39..c0d4c89 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.accessibilitySmall.png and b/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.accessibilitySmall.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.dark.png b/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.dark.png index 96d0d44..5863171 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.dark.png and b/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.dark.png differ diff --git a/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.light.png b/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.light.png index 0e2eabe..aacd878 100644 Binary files a/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.light.png and b/Tests/NFCDemoTests/__Snapshots__/StartNFCViewSnapshotTests/testStartNFCViewSnapshotTests.light.png differ diff --git a/Tests/Util/AnyPublisher+Test.swift b/Tests/Util/AnyPublisher+Test.swift index 09ab94c..3830415 100644 --- a/Tests/Util/AnyPublisher+Test.swift +++ b/Tests/Util/AnyPublisher+Test.swift @@ -1,12 +1,12 @@ // // Copyright (c) 2023 gematik GmbH -// +// // 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 -// +// // http://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. diff --git a/doc/userguide/OHCKIT_API.adoc b/doc/userguide/OHCKIT_API.adoc index 41631c5..d076035 100644 --- a/doc/userguide/OHCKIT_API.adoc +++ b/doc/userguide/OHCKIT_API.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - == API Documentation Generated API docs are available at https://gematik.github.io/ref-OpenHealthCardKit. diff --git a/doc/userguide/OHCKIT_CardReaderProviderApi.adoc b/doc/userguide/OHCKIT_CardReaderProviderApi.adoc index db6c77b..39c8431 100644 --- a/doc/userguide/OHCKIT_CardReaderProviderApi.adoc +++ b/doc/userguide/OHCKIT_CardReaderProviderApi.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - [#CardReaderProviderApi] === CardReaderProviderApi diff --git a/doc/userguide/OHCKIT_GettingStarted.adoc b/doc/userguide/OHCKIT_GettingStarted.adoc index 53b6454..888307e 100644 --- a/doc/userguide/OHCKIT_GettingStarted.adoc +++ b/doc/userguide/OHCKIT_GettingStarted.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - == Getting Started OpenHealthCardKit requires Swift 5.1. diff --git a/doc/userguide/OHCKIT_HealthCardAccess.adoc b/doc/userguide/OHCKIT_HealthCardAccess.adoc index 7846a41..a0024a4 100644 --- a/doc/userguide/OHCKIT_HealthCardAccess.adoc +++ b/doc/userguide/OHCKIT_HealthCardAccess.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - [#HealthCardAccess] === HealthCardAccess This library contains the classes for cards, commands, card file systems and error handling. @@ -49,7 +47,7 @@ by setting the APDU-bytes manually. [source,swift] ---- -include::{integrationitestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=createCommand,indent=0] +include::{integrationtestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=createCommand,indent=0] ---- ===== Setting an execution target @@ -61,7 +59,7 @@ as one kind of a `HealthCardType` implementing the `CardType` protocol. [source,swift] ---- -include::{integrationitestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=setExecutionTarget,indent=0] +include::{integrationtestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=setExecutionTarget,indent=0] ---- A created command can be lifted to the Combine framework with `publisher(for:writetimeout:readtimeout)`. @@ -70,7 +68,7 @@ e.g. +SUCCESS+ (+0x9000+). [source,swift] ---- -include::{integrationitestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=evaluateResponseStatus,indent=0] +include::{integrationtestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=evaluateResponseStatus,indent=0] ---- ===== Create a Command Sequence @@ -87,7 +85,7 @@ Eventually use `eraseToAnyPublisher()`. [source,swift] ---- -include::{integrationitestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=createCommandSequence,indent=0] +include::{integrationtestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=createCommandSequence,indent=0] ---- ===== Process Execution result @@ -98,5 +96,5 @@ convenience publisher is useful. [source,swift] ---- -include::{integrationitestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=processExecutionResult,indent=0] +include::{integrationtestdir}/HealthCardAccess/PublisherIntegrationTest.swift[tags=processExecutionResult,indent=0] ---- diff --git a/doc/userguide/OHCKIT_HealthCardControl.adoc b/doc/userguide/OHCKIT_HealthCardControl.adoc index 14e3443..ae62ecb 100644 --- a/doc/userguide/OHCKIT_HealthCardControl.adoc +++ b/doc/userguide/OHCKIT_HealthCardControl.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - [#HealthCardControl] === HealthCardControl @@ -14,8 +12,6 @@ and a https://github.com/gematik/ref-OpenHealthCardApp-iOS[Demo App] on GitHub. See the https://gematik.github.io/[Gematik GitHub IO] page for a more general overview. -include::config.adoc[] - ==== Code Samples @@ -23,7 +19,7 @@ Take the necessary preparatory steps for signing a challenge on the Health Card, [source,swift] ---- -include::{integrationitestdir}/HealthCardControl/HealthCardTypeExtESIGNIntegrationTest.swift[tags=signChallenge,indent=0] +include::{integrationtestdir}/HealthCardControl/HealthCardTypeExtESIGNIntegrationTest.swift[tags=signChallenge,indent=0] ---- @@ -32,8 +28,8 @@ steps for establishing a secure channel with the Health Card and expose only a s [source,swift] ---- -include::{integrationitestdir}/HealthCardControl/KeyAgreementIntegrationTest.swift[tags=negotiateSessionKey,indent=0] +include::{integrationtestdir}/HealthCardControl/KeyAgreementIntegrationTest.swift[tags=negotiateSessionKey,indent=0] ---- -See the integration tests link:include::{integrationitestdir}/HealthCardControl/[IntegrationTests/HealthCardControl/] +See the integration tests link:include::{integrationtestdir}/HealthCardControl/[IntegrationTests/HealthCardControl/] for more already implemented use cases. \ No newline at end of file diff --git a/doc/userguide/OHCKIT_Introduction.adoc b/doc/userguide/OHCKIT_Introduction.adoc index fd99323..0fa6dca 100644 --- a/doc/userguide/OHCKIT_Introduction.adoc +++ b/doc/userguide/OHCKIT_Introduction.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - == Introduction The OpenHealthCardKit module is intended for reference purposes diff --git a/doc/userguide/OHCKIT_License.adoc b/doc/userguide/OHCKIT_License.adoc index 30947bf..3c3ef6d 100644 --- a/doc/userguide/OHCKIT_License.adoc +++ b/doc/userguide/OHCKIT_License.adoc @@ -1,4 +1,13 @@ -include::config.adoc[] == License - -Licensed under the https://www.apache.org/licenses/LICENSE-2.0[Apache License, Version 2.0]. + +Copyright 2023 gematik GmbH + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. + +See the link:./LICENSE[LICENSE] for the specific language governing permissions and limitations under the License. + +Unless required by applicable law the software is provided "as is" without warranty of any kind, either express or implied, including, but not limited to, the warranties of fitness for a particular purpose, merchantability, and/or non-infringement. The authors or copyright holders shall not be liable in any manner whatsoever for any damages or other claims arising from, out of or in connection with the software or the use or other dealings with the software, whether in an action of contract, tort, or otherwise. + +The software is the result of research and development activities, therefore not necessarily quality assured and without the character of a liable product. For this reason, gematik does not provide any support or other user assistance (unless otherwise stated in individual cases and without justification of a legal obligation). Furthermore, there is no claim to further development and adaptation of the results to a more current state of the art. + +Gematik may remove published results temporarily or permanently from the place of publication at any time without prior notice or justification. diff --git a/doc/userguide/OHCKIT_NFCCardReaderProvider.adoc b/doc/userguide/OHCKIT_NFCCardReaderProvider.adoc index 79826bb..09b2d20 100644 --- a/doc/userguide/OHCKIT_NFCCardReaderProvider.adoc +++ b/doc/userguide/OHCKIT_NFCCardReaderProvider.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - [#NFCCardReaderProvider] === NFCCardReaderProvider diff --git a/doc/userguide/OHCKIT_NFCDemo.adoc b/doc/userguide/OHCKIT_NFCDemo.adoc index 22d633a..bfed1f8 100644 --- a/doc/userguide/OHCKIT_NFCDemo.adoc +++ b/doc/userguide/OHCKIT_NFCDemo.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - [#NFCDemo] === NFCDemo diff --git a/doc/userguide/OHCKIT_Overview.adoc b/doc/userguide/OHCKIT_Overview.adoc index 330d3d5..78457d0 100644 --- a/doc/userguide/OHCKIT_Overview.adoc +++ b/doc/userguide/OHCKIT_Overview.adoc @@ -1,5 +1,3 @@ -include::config.adoc[] - == Overview OpenHealthCardKit bundles submodules that provide the functionality diff --git a/doc/userguide/ReadmeConfig.adoc b/doc/userguide/ReadmeConfig.adoc deleted file mode 100644 index c973f07..0000000 --- a/doc/userguide/ReadmeConfig.adoc +++ /dev/null @@ -1,25 +0,0 @@ -ifndef::globalConfig[] -:globalConfig: true -// asciidoc settings for EN (English) -// ================================== - - -:toc-title: Table of Contents - -// enable table-of-contents -:toc: -:toclevels: 4 - -:classdia-caption: Class diagram -:seqdia-caption: Sequence diagram - -:source-highlighter: prettify - -// where are images located? -:imagesdir: doc/images -:testdir: ../../Tests -:integrationitestdir: ../../IntegrationTests -:sourcedir: ../../Sources -:plantumldir: ../plantuml - -endif::globalConfig[] \ No newline at end of file diff --git a/doc/userguide/config.adoc b/doc/userguide/config.adoc deleted file mode 100644 index aaf3717..0000000 --- a/doc/userguide/config.adoc +++ /dev/null @@ -1,22 +0,0 @@ -ifndef::globalConfig[] - -:toc-title: Table of Contents - -// enable table-of-contents -:toc: -:toclevels: 4 - -:classdia-caption: Class diagram -:seqdia-caption: Sequence diagram - -:source-highlighter: prettify - -:imagesdir: ../images -:imagesoutdir: ../images -:testdir: ../../Tests -:integrationitestdir: ../../IntegrationTests -:sourcedir: ../../Sources -:plantumldir: ../plantuml - - -endif::globalConfig[] \ No newline at end of file diff --git a/fastlane/Fastfile b/fastlane/Fastfile index bc4caa8..c7c5f50 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,23 +1,11 @@ # -# Copyright (c) 2023 gematik GmbH -# -# 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 -# -# http://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. +# ${GEMATIK_COPYRIGHT_STATEMENT} # fastlane_version "2.210.1" xcodes( - version: ENV["FL_XCODE_VERSION"] || "14.2", + version: ENV["FL_XCODE_VERSION"] || "15.0.0", select_for_current_build_only: true, update_list: false ) @@ -218,3 +206,130 @@ lane :cibuild do |options| generate_documentation end + +lane :sign_adhoc do |options| + match(type: "adhoc") + + gym( + skip_build_archive: true, + export_method: "ad-hoc", + output_name: "ohckit_#{build_version}_adhoc.ipa", + archive_path: "./distribution/ohckit_#{build_version}.xcarchive", + output_directory: "./distribution", + include_bitcode: false, + export_options: { + uploadBitcode: false, + uploadSymbols: true, + compileBitcode: false + } + ) +end + +lane :sign_appstore do |options| + match(type: "appstore") + + gym( + skip_build_archive: true, + export_method: "app-store", + output_name: "ohckit_#{build_version}_store.ipa", + archive_path: "./distribution/ohckit_#{build_version}.xcarchive", + output_directory: "./distribution" + ) +end + + +lane :build_archive do |options| + clear_derived_data(derived_data_path: ENV['GYM_DERIVED_DATA_PATH']) + + match(type: "appstore") + + gym( + skip_build_archive: false, + skip_package_ipa: true, + export_method: "app-store", + archive_path: "./distribution/ohckit_#{build_version}.xcarchive", + xcargs: "GEMATIK_SOURCE_VERSION=\"#{git_version}\" GEMATIK_BUNDLE_VERSION=\"#{build_version}\"" + ) +end + +def git_version() + short_hash = last_git_commit[:abbreviated_commit_hash] + dirty = sh("git diff --quiet || echo '-dirty'").strip! + + "#{short_hash}#{dirty}" +end + +def build_version() + ENV['BUILD_NUMBER'] || 'LOCAL_BUILD' +end + + +before_all do |lane, options| + load_keychain +end + +after_all do |lane, options| + remove_keychain +end + +error do |lane, exception, options| + remove_keychain +end + +def load_keychain + remove_keychain + + create_keychain( + name: "gematik", + password: "gematikpassword", + unlock: true, + timeout: 0 + ) +end + +def remove_keychain + if File.exist? File.expand_path("~/Library/Keychains/gematik-db") + delete_keychain(name: "gematik") + end +end + +def randomWord(length) + return ('a'..'z').to_a.shuffle[0,length].join +end + +def isDryRun(options) + if options.key?(:dry_run) + dry_run = options[:dry_run] + elsif !ENV['G_PUBLISH_DRY_RUN'].nil? + dry_run = true?(ENV['G_PUBLISH_DRY_RUN']) + else + dry_run = false + end + return dry_run +end + +lane :publish do |options| + build_archive + + sign_adhoc + # todo(?): if_ci { appcenter_upload + notify_teams_channel} + + sign_appstore + + dry_run = isDryRun(options) + UI.message("Live run") unless dry_run + UI.message("Dry run") if dry_run + app_store_connect_api_key( + issuer_id: "69a6de92-74a9-47e3-e053-5b8c7c11a4d1" + ) + + upload_to_testflight( + ipa: "./distribution/ohckit_#{build_version}_store.ipa", + skip_submission: true, + apple_id: '1450490405', + dev_portal_team_id: "A9FL89PFFL", + skip_waiting_for_build_processing: true + ) unless dry_run + + sh "cd .. && mkdir -p artifacts/appstorebuild_pu/ && rm -rf artifacts/appstorebuild_pu/* && mv distribution artifacts/appstorebuild_pu/; cd - " +end diff --git a/fastlane/Matchfile b/fastlane/Matchfile index e69de29..e8c9787 100644 --- a/fastlane/Matchfile +++ b/fastlane/Matchfile @@ -0,0 +1,16 @@ +keychain_name("gematik") +keychain_password("gematikpassword") + +git_branch("master") +readonly(true) +storage_mode("git") + +type("appstore") + +app_identifier("de.gematik.ohcapp4ios.DemoApp") +team_name("gematik GmbH") +team_id("A9FL89PFFL") + +# Uncomment and fill this lines or add the corresponding ENV (MATCH_USERNAME, MATCH_GIT_URL) to call fastlane locally +# username("") +# git_url("") diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile deleted file mode 100644 index e69de29..0000000 diff --git a/project.yml b/project.yml index 25d44ab..ed8e1d8 100644 --- a/project.yml +++ b/project.yml @@ -1,4 +1,9 @@ name: OpenHealthCardKit +include: + - path: IntegrationTests/project.yml + relativePaths: false + # Set environment variable to true if have access to the necessary gematik-internal resources + enable: ${GEMATIK_DEVELOPMENT} # <-- do not edit this line options: bundleIdPrefix: de.gematik.ti.ohcapp4ios deploymentTarget: @@ -38,6 +43,8 @@ schemes: targets: NFCDemo: all test: + language: de + region: DE gatherCoverageData: true coverageTargets: - NFCDemo @@ -60,8 +67,15 @@ packages: SnapshotTesting: url: https://github.com/pointfreeco/swift-snapshot-testing majorVersion: 1.10.0 + AEXML: + url: https://github.com/tadija/AEXML + majorVersion: 4.6.0 + StreamReader: + url: https://github.com/hectr/swift-stream-reader/ + majorVersion: 0.3.0 settings: base: + DEVELOPMENT_TEAM: A9FL89PFFL CODE_SIGN_IDENTITY: "" SWIFT_VERSION: 5.0 ALWAYS_SEARCH_USER_PATHS: NO @@ -210,8 +224,6 @@ targets: - package: DataKit - package: GemCommonsKit product: GemCommonsKit - - package: GemCommonsKit - product: ObjCCommonsKit - framework: Carthage/Build/Nimble.xcframework - target: Util_${platform} HealthCardControl: diff --git a/scripts/build b/scripts/build index cd9b26f..3154ea9 100755 --- a/scripts/build +++ b/scripts/build @@ -7,3 +7,5 @@ set -ev cd "$(dirname "$0")/.." bundle exec fastlane build_all +# NFC Demo for iOS +bundle exec fastlane build_ios_release diff --git a/scripts/cibuild b/scripts/cibuild index a26c45f..4589589 100755 --- a/scripts/cibuild +++ b/scripts/cibuild @@ -13,6 +13,8 @@ date "+%H:%M:%S" scripts/bootstrap bundle exec fastlane cibuild +# Publish dry_run +bundle exec fastlane publish dry_run:true echo "Done" date "+%H:%M:%S" diff --git a/scripts/publish b/scripts/publish new file mode 100755 index 0000000..1906cb8 --- /dev/null +++ b/scripts/publish @@ -0,0 +1,18 @@ +#!/bin/sh + +# scripts/publish: Build & Publish the application to TestFlight + +set -ev + +cd "$(dirname "$0")/.." + +echo "Publish started at…" +date "+%H:%M:%S" + +scripts/bootstrap + +# NFC Demo for iOS +bundle exec fastlane publish + +echo "Done" +date "+%H:%M:%S" diff --git a/scripts/readme b/scripts/readme new file mode 100755 index 0000000..1ed021f --- /dev/null +++ b/scripts/readme @@ -0,0 +1,13 @@ +#!/bin/sh + +# scripts/readme: Run readme for README.adoc generation in .github/ + +set -ev + +cd "$(dirname "$0")/.." + +[ -z "$DEBUG" ] || set -x + +echo "==> Generate README.adoc in .github/" + +bundle exec asciidoctor-reducer -o ./.github/README.adoc README.adoc \ No newline at end of file