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.
Podspec: ProtonCore-AccountSwitcher.podspec
Sources: libraries/AccountSwitcher
Platforms supported: iOS
API clients for a subset of small, common Proton APIs.
Podspec: ProtonCore-APIClient.podspec
Sources: libraries/APIClient
Platforms supported: iOS, macOS
API client for the Proton Authentication API.
Podspec: ProtonCore-Authentication.podspec
Sources: libraries/Authentication
Platforms supported: iOS, macOS
Variants:
ProtonCore-Authentication/UsingCrypto
ProtonCore-Authentication/UsingCryptoVPN
Extension to the Authentication module for the key generation operations.
Podspec: ProtonCore-Authentication-KeyGeneration.podspec
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.
Podspec: ProtonCore-Challenge.podspec
Sources: libraries/Challenge
Platforms supported: iOS
Architectural sketch. A set of protocols and basic types to base the architecture on.
Podspec: ProtonCore-Common.podspec
Sources: libraries/Common
Platforms supported: iOS, macOS (very limited subset of sources)
Localized strings.
Podspec: ProtonCore-CoreTranslation.podspec
Sources: libraries/CoreTranslation
Platforms supported: iOS, macOS
Wrapper and delivery mechanism for the go crypto libraries, built into vendor/Crypto/Crypto.xcframework
.
More info in Crypto README.
Podspec: ProtonCore-Crypto.podspec
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.
Podspec: ProtonCore-Crypto-VPN.podspec
Sources: libraries/Crypto
Uses and deliveres framework: Crypto_VPN.xcframework
Platforms supported: iOS, macOS
Basic data objects used in various modules.
Podspec: ProtonCore-DataModel.podspec
Sources: libraries/DataModel
Platforms supported: iOS, macOS
Basic logic for DNS over HTTPS feature.
Podspec: ProtonCore-DoH.podspec
Sources: libraries/DoH
Platforms supported: iOS, macOS
Common cross-app user features. Right now only single one: email sending.
Podspec: ProtonCore-Features.podspec
Sources: libraries/Features
Platforms supported: iOS, macOS
Variants:
ProtonCore-Features/UsingCrypto
ProtonCore-Features/UsingCryptoVPN
Common cross-app unleash feature flags. It is exposed only as a swift package
README: Doc
Sources: libraries/FeatureFlags
Platforms supported: iOS, macOS
Logic for handling force upgrade.
Podspec: ProtonCore-ForceUpgrade.podspec
Sources: libraries/ForceUpgrade
Platforms supported: iOS, macOS (very limited subset of sources)
Helpers for common tasks. Not really well defined.
Podspec: ProtonCore-Foundations.podspec
Sources: libraries/Foundations
Platforms supported: iOS, macOS (very limited subset of sources)
Basic hash algo types.
Podspec: ProtonCore-Hash.podspec
Sources: libraries/Hash
Platforms supported: iOS, macOS
Human verification handling with the UI.
Podspec: ProtonCore-HumanVerification.podspec
Sources: libraries/HumanVerification
Platforms supported: iOS, macOS
Logic related to storing keys and maintaining access to them.
Podspec: ProtonCore-Keymaker.podspec
Sources: libraries/Keymaker
Platforms supported: iOS, macOS
Variants:
ProtonCore-Keymaker/UsingCrypto
ProtonCore-Keymaker/UsingCryptoVPN
Crypto operations using keys.
Podspec: ProtonCore-KeyManager.podspec
Sources: libraries/KeyManager
Platforms supported: iOS, macOS
Variants:
ProtonCore-KeyManager/UsingCrypto
ProtonCore-KeyManager/UsingCryptoVPN
Logging events. File-backed.
Podspec: ProtonCore-Log.podspec
Sources: libraries/Log
Platforms supported: iOS, macOS
Login and signup services. Setting the right account state during login.
Podspec: ProtonCore-Login.podspec
Sources: libraries/Login
Platforms supported: iOS, macOS
Variants:
ProtonCore-Login/UsingCrypto
ProtonCore-Login/UsingCryptoVPN
Login and signup UI.
Podspec: ProtonCore-LoginUI.podspec
Sources: libraries/LoginUI
Platforms supported: iOS
Variants:
ProtonCore-LoginUI/UsingCrypto
ProtonCore-LoginUI/UsingCryptoVPN
Common networking objects and protocols.
Podspec: ProtonCore-Networking.podspec
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.
Podspec: ProtonCore-ObfuscatedConstants.podspec
Sources: libraries/ObfuscatedConstants
Platforms supported: iOS, macOS
Payments services and logic.
Podspec: ProtonCore-Payments.podspec
Sources: libraries/Payments
Platforms supported: iOS, macOS
Variants:
ProtonCore-Payments/UsingCrypto
ProtonCore-Payments/UsingCryptoVPN
Payments UI.
Podspec: ProtonCore-PaymentsUI.podspec
Sources: libraries/PaymentsUI
Platforms supported: iOS
Variants:
ProtonCore-PaymentsUI/UsingCrypto
ProtonCore-PaymentsUI/UsingCryptoVPN
Actual network engine. Uses either AFNetworking or Alamofire under the hood.
Podspec: ProtonCore-Services.podspec
Sources: libraries/Services
Platforms supported: iOS, macOS
UI component for limited app settings.
Podspec: ProtonCore-Settings.podspec
Sources: libraries/Settings
Platforms supported: iOS
A number of things helping with unit and UI testing of modules. Submodule-based.
Podspec: ProtonCore-TestingToolkit.podspec
Sources: libraries/TestingToolkit
Platforms supported: iOS, macOS
Colors, styles and common UI components.
Podspec: ProtonCore-UIFoundations.podspec
Sources: libraries/UIFoundations
Platforms supported: iOS, macOS (very limited subset of sources)
A number of common helpers and extensions used in various modules.
Podspec: ProtonCore-Utilities.podspec
Sources: libraries/Utilities
Platforms supported: iOS, macOS
Delivery mechanism for the VCard library, built into vendor/VCard/VCard.xcframework
.
No actual Swift sources here.
Podspec: ProtonCore-VCard.podspec
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.