Co-authored-by: L10n bot <service_account_73c4205ebb9a547d11aa5c7b26226660@noreply.gitlab.protontech.ch> Refs: https://gitlab.protontech.ch/apple/shared/protoncore/-/merge_requests/2318 |
||
|---|---|---|
| .gitlab | ||
| .swiftpm | ||
| fastlane | ||
| Integration/Templates | ||
| libraries | ||
| plugins/SwiftLint | ||
| scripts | ||
| tools | ||
| vendor | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .gitmodules | ||
| .lhc.pkl | ||
| .locale-state.metadata | ||
| .swiftlint.yml | ||
| CHANGELOG.md | ||
| CONTRIBUTION_POLICY.md | ||
| ephemera.yml | ||
| LICENSE | ||
| Mintfile | ||
| Package.resolved | ||
| Package.swift | ||
| README.md | ||
ProtonCore iOS
The set of core iOS modules used by Proton Technologies AG.
Table of Contents
Modules
Account Switcher
UI components for showing the list of logged in account, switch between them, log out, log in another.
Sources: libraries/AccountSwitcher
Platforms supported: iOS
APIClient
API clients for a subset of small, common Proton APIs.
Sources: libraries/APIClient
Platforms supported: iOS, macOS
Authentication
API client for the Proton Authentication API.
Sources: libraries/Authentication
Platforms supported: iOS, macOS
Variants:
ProtonCore-Authentication/UsingCryptoProtonCore-Authentication/UsingCryptoVPN
Authentication-KeyGeneration
Extension to the Authentication module for the key generation operations.
Sources: libraries/Authentication-KeyGeneration
Platforms supported: iOS, macOS
Variants:
ProtonCore-Authentication-KeyGeneration/UsingCryptoProtonCore-Authentication-KeyGeneration/UsingCryptoVPN
Challenge
Gathering information used by the anti-abuse filters to limit fraud and abuse.
Sources: libraries/Challenge
Platforms supported: iOS
Common
Architectural sketch. A set of protocols and basic types to base the architecture on.
Sources: libraries/Common
Platforms supported: iOS, macOS (very limited subset of sources)
Crypto
Wrapper and delivery mechanism for the go crypto libraries, built into vendor/Crypto/Crypto.xcframework.
More info in Crypto README.
Sources: libraries/Crypto
Uses and deliveres framework: Crypto.xcframework
Platforms supported: iOS, macOS
Crypto-VPN
Wrapper and delivery mechanism for the go crypto libraries, built into vendor/Crypto_VPN/Crypto_VPN.xcframework.
More info in Crypto README.
Sources: libraries/Crypto
Uses and deliveres framework: Crypto_VPN.xcframework
Platforms supported: iOS, macOS
DataModel
Basic data objects used in various modules.
Sources: libraries/DataModel
Platforms supported: iOS, macOS
DoH
Basic logic for DNS over HTTPS feature.
Sources: libraries/DoH
Platforms supported: iOS, macOS
Features
Common cross-app user features. Right now only single one: email sending.
Sources: libraries/Features
Platforms supported: iOS, macOS
Variants:
ProtonCore-Features/UsingCryptoProtonCore-Features/UsingCryptoVPN
Feature Flags
Common cross-app unleash feature flags.
README: Doc
Sources: libraries/FeatureFlags
Platforms supported: iOS, macOS
ForceUpgrade
Logic for handling force upgrade.
Sources: libraries/ForceUpgrade
Platforms supported: iOS, macOS (very limited subset of sources)
Foundations
Helpers for common tasks. Not really well defined.
Sources: libraries/Foundations
Platforms supported: iOS, macOS (very limited subset of sources)
Hash
Basic hash algo types.
Sources: libraries/Hash
Platforms supported: iOS, macOS
HumanVerification
Human verification handling with the UI.
Sources: libraries/HumanVerification
Platforms supported: iOS, macOS
Keymaker
Logic related to storing keys and maintaining access to them.
Sources: libraries/Keymaker
Platforms supported: iOS, macOS
Variants:
ProtonCore-Keymaker/UsingCryptoProtonCore-Keymaker/UsingCryptoVPN
KeyManager
Crypto operations using keys.
Sources: libraries/KeyManager
Platforms supported: iOS, macOS
Variants:
ProtonCore-KeyManager/UsingCryptoProtonCore-KeyManager/UsingCryptoVPN
Log
Logging events. File-backed.
Sources: libraries/Log
Platforms supported: iOS, macOS
Login
Login and signup services. Setting the right account state during login.
Sources: libraries/Login
Platforms supported: iOS, macOS
Variants:
ProtonCore-Login/UsingCryptoProtonCore-Login/UsingCryptoVPN
LoginUI
Login and signup UI.
Sources: libraries/LoginUI
Platforms supported: iOS
Variants:
ProtonCore-LoginUI/UsingCryptoProtonCore-LoginUI/UsingCryptoVPN
Networking
Common networking objects and protocols.
Sources: libraries/Networking
Platforms supported: iOS, macOS
ObfuscatedConstants
A wrapper for sensitive data like test user accounts or internal testing environments that are not available publicly.
Sources: libraries/ObfuscatedConstants
Platforms supported: iOS, macOS
Payments
Payments services and logic.
Sources: libraries/Payments
Platforms supported: iOS, macOS
Variants:
ProtonCore-Payments/UsingCryptoProtonCore-Payments/UsingCryptoVPN
PaymentsUI
Payments UI.
Sources: libraries/PaymentsUI
Platforms supported: iOS
Variants:
ProtonCore-PaymentsUI/UsingCryptoProtonCore-PaymentsUI/UsingCryptoVPN
Services
Actual network engine. Uses either AFNetworking or Alamofire under the hood.
Sources: libraries/Services
Platforms supported: iOS, macOS
Settings
UI component for limited app settings.
Sources: libraries/Settings
Platforms supported: iOS
TestingToolkit
A number of things helping with unit and UI testing of modules. Submodule-based.
Sources: libraries/TestingToolkit
Platforms supported: iOS, macOS
UIFoundations
Colors, styles and common UI components.
Sources: libraries/UIFoundations
Platforms supported: iOS, macOS (very limited subset of sources)
Utilities
A number of common helpers and extensions used in various modules.
Sources: libraries/Utilities
Platforms supported: iOS, macOS
VCard
Delivery mechanism for the VCard library, built into vendor/VCard/VCard.xcframework.
No actual Swift sources here.
Uses and deliveres framework: VCard.xcframework
Platforms supported: iOS, macOS
License
The code and data files in this distribution are licensed under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See GNU General Public License for a copy of this license.
See LICENSE file.
This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).
Contributing notice
By contributing to the ProtonCore iOS you accept the CONTRIBUTION_POLICY. Please read and understand before making a contribution.