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 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.