The set of core iOS modules used by Proton Technologies AG.
UI components for showing the list of logged in account, switch between them, log out, log in another.
Sources: libraries/AccountSwitcher
Platforms supported: iOS
API clients for a subset of small, common Proton APIs.
Sources: libraries/APIClient
Platforms supported: iOS, macOS
API client for the Proton Authentication API.
Sources: libraries/Authentication
Platforms supported: iOS, macOS
Variants:
ProtonCore-Authentication/UsingCrypto
ProtonCore-Authentication/UsingCryptoVPN
Extension to the Authentication module for the key generation operations.
Sources: libraries/Authentication-KeyGeneration
Platforms supported: iOS, macOS
Variants:
ProtonCore-Authentication-KeyGeneration/UsingCrypto
ProtonCore-Authentication-KeyGeneration/UsingCryptoVPN
Gathering information used by the anti-abuse filters to limit fraud and abuse.
Sources: libraries/Challenge
Platforms supported: iOS
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)
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
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
Basic data objects used in various modules.
Sources: libraries/DataModel
Platforms supported: iOS, macOS
Basic logic for DNS over HTTPS feature.
Sources: libraries/DoH
Platforms supported: iOS, macOS
Common cross-app user features. Right now only single one: email sending.
Sources: libraries/Features
Platforms supported: iOS, macOS
Variants:
ProtonCore-Features/UsingCrypto
ProtonCore-Features/UsingCryptoVPN
Common cross-app unleash feature flags.
README: Doc
Sources: libraries/FeatureFlags
Platforms supported: iOS, macOS
Logic for handling force upgrade.
Sources: libraries/ForceUpgrade
Platforms supported: iOS, macOS (very limited subset of sources)
Helpers for common tasks. Not really well defined.
Sources: libraries/Foundations
Platforms supported: iOS, macOS (very limited subset of sources)
Basic hash algo types.
Sources: libraries/Hash
Platforms supported: iOS, macOS
Human verification handling with the UI.
Sources: libraries/HumanVerification
Platforms supported: iOS, macOS
Logic related to storing keys and maintaining access to them.
Sources: libraries/Keymaker
Platforms supported: iOS, macOS
Variants:
ProtonCore-Keymaker/UsingCrypto
ProtonCore-Keymaker/UsingCryptoVPN
Crypto operations using keys.
Sources: libraries/KeyManager
Platforms supported: iOS, macOS
Variants:
ProtonCore-KeyManager/UsingCrypto
ProtonCore-KeyManager/UsingCryptoVPN
Logging events. File-backed.
Sources: libraries/Log
Platforms supported: iOS, macOS
Login and signup services. Setting the right account state during login.
Sources: libraries/Login
Platforms supported: iOS, macOS
Variants:
ProtonCore-Login/UsingCrypto
ProtonCore-Login/UsingCryptoVPN
Login and signup UI.
Sources: libraries/LoginUI
Platforms supported: iOS
Variants:
ProtonCore-LoginUI/UsingCrypto
ProtonCore-LoginUI/UsingCryptoVPN
Common networking objects and protocols.
Sources: libraries/Networking
Platforms supported: iOS, macOS
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 services and logic.
Sources: libraries/Payments
Platforms supported: iOS, macOS
Variants:
ProtonCore-Payments/UsingCrypto
ProtonCore-Payments/UsingCryptoVPN
Payments UI.
Sources: libraries/PaymentsUI
Platforms supported: iOS
Variants:
ProtonCore-PaymentsUI/UsingCrypto
ProtonCore-PaymentsUI/UsingCryptoVPN
Actual network engine. Uses either AFNetworking or Alamofire under the hood.
Sources: libraries/Services
Platforms supported: iOS, macOS
UI component for limited app settings.
Sources: libraries/Settings
Platforms supported: iOS
A number of things helping with unit and UI testing of modules. Submodule-based.
Sources: libraries/TestingToolkit
Platforms supported: iOS, macOS
Colors, styles and common UI components.
Sources: libraries/UIFoundations
Platforms supported: iOS, macOS (very limited subset of sources)
A number of common helpers and extensions used in various modules.
Sources: libraries/Utilities
Platforms supported: iOS, macOS
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
The example app is located in the ExampleApp directory.
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/).
By contributing to the ProtonCore iOS you accept the CONTRIBUTION_POLICY. Please read and understand before making a contribution.