Commit Graph
16 Commits
Author SHA1 Message Date
Andrew Heard a83297908d [App Check] Implement FirebaseAppCheck as a shim of AppCheckCore (#12067) 2023-11-07 18:54:45 -05:00
Andrew Heard 1317f08326 [App Check] Reset App Attest key state if attestKey fails (#11986) 2023-10-24 13:30:40 -04:00
Andrew Heard f73ca9532c [App Check] Add failure reasons for App Attest error cases (#11956) 2023-10-19 17:28:38 -04:00
Andrew Heard a885d5e023 [App Check] Remove usages of FIR_*_SUPPORTED_TARGETS macros (#11831) 2023-09-20 12:07:42 -04:00
Paul Beusterien 99275370a2 Merge remote-tracking branch 'origin/master' into v9b 2022-04-06 09:56:33 -07:00
Nick Cooke 2f3bc9b8ae Update response parsing logic and endpoint baseURL (#9580) 2022-04-05 16:50:32 -04:00
Morgan Chen 7a273e7bae fix returns typo (#9541) 2022-03-31 11:37:45 -07:00
Nick Cooke 3d4b0f429e [Heartbeat Logging] Migrate AppCheck from using FIRHeartbeatInfo to FIRHeartbeatLogger (#9530)
* Integrate AppCheck with FIRHeartbeatLogger

* Fix comment typo

* Fix CI

* [will revert] debug why HeartbeatLoggingTestUtils.podspec is linted?

* Revert "[will revert] debug why HeartbeatLoggingTestUtils.podspec is linted?"

This reverts commit 25a79874d8.

* Change visibility of shim class

* Fix CI

* [skip ci] Review
2022-03-30 16:18:41 -04:00
Nick Cooke a09083f9d0 [v9] Reorganize FirebaseCore* modules (#9482)
* [skip ci] [will revert] Add debug printing to `pod_lib_lint.rb`

* Reorganize FirebaseCore libraries for SPM and CP

* [skip ci] Revert "[skip ci] [will revert] Add debug printing to `pod_lib_lint.rb`"

This reverts commit 2a837e39708c21b0a324743ab226bd6c01047de7.

* Review and fix CI

* Remove `heartbeat_logging.yml` and add `core_internal.yml`

* Remove trailing whitespace

* Fix more whitespace 😞

* Fix `core_internal.yml` scheme name

* Update `check_imports.swift` and TODO

* Review

* Add FirebaseCoreInternal pod to Firestore example's Podfile

* [skip ci] Review - remove TODOs

* [skip ci] Remove duplicate `XCTest` import
2022-03-23 06:08:14 -07:00
Paul Beusterien 4f793064da Set up Core Internal for SPM (#9298) 2022-03-23 06:07:17 -07:00
Maksym Malyhin 58e73bac24 App Check: error handling with backoff (#8798)
* AppCheck: backoff wrapper implementation draft  (#8748)

* FIRAppCheckBackoffWrapper draft

* style

* FIRAppCheckBackoffWrapper implementation draft

* FIRAppCheckBackoffWrapperTests

* 1d backoff implementation

* Fix tests

* WIP FIRAppCheckBackoffWrapperFake

* FIRAppCheckBackoffWrapperFake implementation

* FIRDeviceCheckProviderTests + backoff

* TODOs

* rename

* Docs, typos, names and minor refactoring

* App Check: error handling with backoff (#8794)

* Exponential backoff with jitter

* modify random to arc4random_uniform

* Error handling WIP

* Default backoff strategy for backend errors

* Default error handler implementation and tests

* Exponential backoff tests and fixes

* Exponential becoff recovery tests

* style

* App Attest backoff integration and tests

* More tests and style

* FIRDeviceCheckProviderTests: default error handler tests

* test fixes

* FIRAppAttestProviderTests: backoff error handler tests

* Providers tests: test backoff case

* Better API docs

* Remove `resetBackoff`

* More docs and comment fixes

* FIRAppAttestProviderTests fixes and cleanup

* Higlight 503 error

* comment fix

* Changelog

* More details in changelog
2021-10-13 16:48:17 -04:00
Maksym Malyhin 85c42dc2c5 Make App Check core availability for all supported platforms (#8388)
* Update App Check availability to match Core

* AppAttest availability update

* Fix watchOS

* watchOS

* style

* fix import

* Fix Xcode support before 12.5

* changelog

* Comments

* Use week linking for DeviceCheck framework

* Fix mac catalyts version
2021-07-15 16:41:46 -04:00
Nick Cooke 1803b00e84 App Check: Token API for 3P use (#8266)
* Initial API implementation

* Update CHANGELOG

* Update test imports

* Make API async/await friendly by default

* Make API async friendly by default 2

* Fix CI

* Remove async/await example to fix CI

* Edit comment spacing

* Keychain error handling

* API rename and tests

* Add comments to tests

* Add public errors to umbrella header

* Refactor remaining test logic

* Remove newline

* Review

* Fix import style

* Fix import style 2
2021-06-23 13:01:42 -04:00
Maksym MalyhinandNick Cooke 2ec4dbdae4 App Check: optimize auto-refresh (#8232)
* App Attest provider: attestation sequence (#7971)

* App Attest provider: attestation sequence (#761)

* App Attest draft WIP

* FIRAppAttestProvider initializers

* ./scripts/style.sh

* FIRAppAttestProvider implementation draft

* Basic FIRAppAttestProviderTests and fixes

* style

* testGetTokenWhenAppAttestIsNotSupported

* More FIRAppAttestProviderTests

* Cleanup

* Remove unused file

* Availability annotations on DCAppAttestService category.

* Guard FIRAppAttestProvider with #if TARGET_OS_IOS

* Formatting

* Fix SPM

* app_check.yaml: Add diagnostics SPM builds

* fix yaml

* Fix Firebase-Package scheme bad merge

* Fix typo

* FIRAppAttestProvider: hide default init

* FIRAppAttestKeyIDStorage: methods placeholders

* Comments

* Fix updated block definition

* Implement app attest key ID storage (#8014)

* Implement FIRAppAttestKeyIDStorage

* Add FIRAppAttestKeyIDStorageTests

* Review [Draft]

* Style

* Docs updates

* Docs updates 2

* Review [Draft] 2

* Improve tests

* Improve test readability

* Improve test readability 2

* App Check App Attest workflow updates: initial handshake (#8032)

* Handshake adjustments (WIP)

* Introduce FIRAppAttestProviderState

* WIP: calculate attestation state

* WIP: calculate attestation state 2

* formatting

* Comments and moving code around

* Fix init in tests

* Fix state calculation flow

* Cleanup state calculation and fix tests.

* Cleanup and fixes.

* Comments

* formatting

* Fix import

* Typo fixes and additional comments

* FIRAppAttestInitialHandshakeResponse API

* Cleanup state calculation using FBLPromiseAwait

* Cleanup

* style

* FIRAppAttestArtifactStorage implementation and tests (#8041)

* Update comments

* FIRAppAttestArtifactStorage implementation and tests

* Fix init

* API docs

* Clean up storage in tests

* Comments

* Disable Keychain dependent tests for SPM

* Implement App Attest `getRandomChallenge` (#8033)

* Initial implementation

* Parse response body for challenge and stub test cases

* Review [Draft]

* Avoid encoding challenge again

* Add tests

* Revert "Avoid encoding challenge again" and add TODO

This reverts commit 69eb00dfe2.

* Document tests; Add test

* Tests: Add URL validation check

* Review

* Define Exchange AppAttest Assertion for FAC token API (#8058)

* App Check App Attest: attestation request (#8059)

* App Attest provider API integration WIP

* update tests

* Draft attestation response parsing

* Attestation request draft

* style

* AppAttest Attestation API tests draft

* Error cases tests

* style

* Cleanup and API docs

* Merge fix

* Fix OCMock imports

* Fix nullability modifier

* Formatting

* comments

* App Check App Attest initial handshake adjustments (#8067)

* calculatre sha256 of random challenge for attestation

* Test app adjustments

* cleanup

* use trailing closures in the test app

* Implement API for ExchangeAppAttestAssertionRequest endpoint (#8065)

* Implement assertion exchange

* Tweak existing tests

* Add tests

* Rename JSON to better match gRPC  message

* Add HTTPBody helper

* Review

* Review 2

* Review 3

* App Check App Attest assertion flow (#8083)

* App Attest assertion workflow draft

* send request

* assertion flow tests

* style

* App Check: store App Attest artifact per key ID (#8097)

* Update artifact storage API and tests

* Artifact storage implementation update

* Save artifact for a key ID

* Style

* typos

* App Check: prevent concurrent token requests (#8117)

* App Attest multiple get token method invocation tests

* Ensure a single App Attest handshake sequence at the time

* FIRAppCheckTests: get token request merging tests

* FIRAppCheck: Ensure a single get token operation at the time

* formatting

* Test new request after merged requests

* Release finished operation promise

* Style

* Typos

* typo

* Request merging tests for error cases

* formatting

* Changelog

* App Check App Attest: handle attestation rejection (#8170)

* Remove/update outdated TODOs

* [WIP] Attestation rejection handling draft

* style

* retry tests draft

* reset key ID before retry

* Reset attestation

* test error and fixes

* style

* More details in the name

* Some debug logging

* style

* Use specific codes for log messages

* style

* Add FIRAppAttestProvider.h the umbrella header

* Add receivedAtDate property to the FAC token

* Update tests to check receivedAtDate field where important

* [WIP] Use FIRAppCheckTokenRefreshResult instead in the refresher API

* [WIP] Fix refgresher usage

* Update tests with new API, keep old logic

* Update tests with new logic

* WIP

* WIP

* Initial refresh tests and fixes.

* Add #import <TargetConditionals.h> where needed.

* Formatting

* Cleanup and test updates

* style

* Comments

* Cleanup and comments

* Fix catalyst

* Changelog

* Changelog version fix

* Typo

* Cleanup

* Typo

* Imports order

Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2021-06-11 17:35:37 -04:00
Paul Beusterien 1d9bb05997 Fix AppCheck Catalyst build on Xcode 12.4 (#8184) 2021-06-03 09:35:13 -07:00
Maksym MalyhinandNick Cooke 302f91e1ed App Check: App Attest provider (#8133)
* App Attest provider: attestation sequence (#7971)

* App Attest provider: attestation sequence (#761)

* App Attest draft WIP

* FIRAppAttestProvider initializers

* ./scripts/style.sh

* FIRAppAttestProvider implementation draft

* Basic FIRAppAttestProviderTests and fixes

* style

* testGetTokenWhenAppAttestIsNotSupported

* More FIRAppAttestProviderTests

* Cleanup

* Remove unused file

* Availability annotations on DCAppAttestService category.

* Guard FIRAppAttestProvider with #if TARGET_OS_IOS

* Formatting

* Fix SPM

* app_check.yaml: Add diagnostics SPM builds

* fix yaml

* Fix Firebase-Package scheme bad merge

* Fix typo

* FIRAppAttestProvider: hide default init

* FIRAppAttestKeyIDStorage: methods placeholders

* Comments

* Fix updated block definition

* Implement app attest key ID storage (#8014)

* Implement FIRAppAttestKeyIDStorage

* Add FIRAppAttestKeyIDStorageTests

* Review [Draft]

* Style

* Docs updates

* Docs updates 2

* Review [Draft] 2

* Improve tests

* Improve test readability

* Improve test readability 2

* App Check App Attest workflow updates: initial handshake (#8032)

* Handshake adjustments (WIP)

* Introduce FIRAppAttestProviderState

* WIP: calculate attestation state

* WIP: calculate attestation state 2

* formatting

* Comments and moving code around

* Fix init in tests

* Fix state calculation flow

* Cleanup state calculation and fix tests.

* Cleanup and fixes.

* Comments

* formatting

* Fix import

* Typo fixes and additional comments

* FIRAppAttestInitialHandshakeResponse API

* Cleanup state calculation using FBLPromiseAwait

* Cleanup

* style

* FIRAppAttestArtifactStorage implementation and tests (#8041)

* Update comments

* FIRAppAttestArtifactStorage implementation and tests

* Fix init

* API docs

* Clean up storage in tests

* Comments

* Disable Keychain dependent tests for SPM

* Implement App Attest `getRandomChallenge` (#8033)

* Initial implementation

* Parse response body for challenge and stub test cases

* Review [Draft]

* Avoid encoding challenge again

* Add tests

* Revert "Avoid encoding challenge again" and add TODO

This reverts commit 69eb00dfe2.

* Document tests; Add test

* Tests: Add URL validation check

* Review

* Define Exchange AppAttest Assertion for FAC token API (#8058)

* App Check App Attest: attestation request (#8059)

* App Attest provider API integration WIP

* update tests

* Draft attestation response parsing

* Attestation request draft

* style

* AppAttest Attestation API tests draft

* Error cases tests

* style

* Cleanup and API docs

* Merge fix

* Fix OCMock imports

* Fix nullability modifier

* Formatting

* comments

* App Check App Attest initial handshake adjustments (#8067)

* calculatre sha256 of random challenge for attestation

* Test app adjustments

* cleanup

* use trailing closures in the test app

* Implement API for ExchangeAppAttestAssertionRequest endpoint (#8065)

* Implement assertion exchange

* Tweak existing tests

* Add tests

* Rename JSON to better match gRPC  message

* Add HTTPBody helper

* Review

* Review 2

* Review 3

* App Check App Attest assertion flow (#8083)

* App Attest assertion workflow draft

* send request

* assertion flow tests

* style

* App Check: store App Attest artifact per key ID (#8097)

* Update artifact storage API and tests

* Artifact storage implementation update

* Save artifact for a key ID

* Style

* typos

* App Check: prevent concurrent token requests (#8117)

* App Attest multiple get token method invocation tests

* Ensure a single App Attest handshake sequence at the time

* FIRAppCheckTests: get token request merging tests

* FIRAppCheck: Ensure a single get token operation at the time

* formatting

* Test new request after merged requests

* Release finished operation promise

* Style

* Typos

* typo

* Request merging tests for error cases

* formatting

* Changelog

* App Check App Attest: handle attestation rejection (#8170)

* Remove/update outdated TODOs

* [WIP] Attestation rejection handling draft

* style

* retry tests draft

* reset key ID before retry

* Reset attestation

* test error and fixes

* style

* More details in the name

* Some debug logging

* style

* Use specific codes for log messages

* style

* Add FIRAppAttestProvider.h the umbrella header

Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2021-06-01 10:47:57 -04:00