Skip to content

TrustedEntitlements: new VerificationResult.isVerified#2788

Merged
NachoSoto merged 1 commit into
mainfrom
verification-result-verified
Jul 11, 2023
Merged

TrustedEntitlements: new VerificationResult.isVerified#2788
NachoSoto merged 1 commit into
mainfrom
verification-result-verified

Conversation

@NachoSoto

Copy link
Copy Markdown
Contributor

The documentation was slightly updated, because we also need to accept .verifiedOnDevice.

@NachoSoto NachoSoto requested a review from a team July 11, 2023 17:48
@NachoSoto NachoSoto enabled auto-merge (squash) July 11, 2023 17:50

@tonidero tonidero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@NachoSoto NachoSoto merged commit be5ce74 into main Jul 11, 2023
@NachoSoto NachoSoto deleted the verification-result-verified branch July 11, 2023 18:03
NachoSoto added a commit that referenced this pull request Jul 11, 2023
**This is an automatic release.**

### New Features
* `Trusted Entitlements`: (#2621) via NachoSoto (@NachoSoto)

This new feature prevents MitM attacks between the SDK and the
RevenueCat server.
With verification enabled, the SDK ensures that the response created by
the server was not modified by a third-party, and the entitlements
received are exactly what was sent.
This is 100% opt-in. `EntitlementInfos` have a new `VerificationResult`
property, which will indicate the validity of the responses when this
feature is enabled.

```swift
let purchases = Purchases.configure(
  with: Configuration
    .builder(withAPIKey: "")
    .with(entitlementVerificationMode: .informational)
)
let customerInfo = try await purchases.customerInfo()
if !customerInfo.entitlements.verification.isVerified {
  print("Entitlements could not be verified")
}
```

You can learn more from [the
documentation](https://www.revenuecat.com/docs/trusted-entitlements).

### Other Changes
* `TrustedEntitlements`: new `VerificationResult.isVerified` (#2788) via
NachoSoto (@NachoSoto)
* `Refactor`: extracted `Collection.subscript(safe:)` (#2779) via
NachoSoto (@NachoSoto)
* `Trusted Entitlements`: added link to docs in
`ErrorCode.signatureVerificationFailed` (#2783) via NachoSoto
(@NachoSoto)
* `Trusted Entitlements`: improved documentation (#2782) via NachoSoto
(@NachoSoto)
* `Tests`: fixed flaky failure with asynchronous check (#2777) via
NachoSoto (@NachoSoto)
* `Integration Tests`: re-enable signature verification tests (#2744)
via NachoSoto (@NachoSoto)
* `CI`: remove `Jazzy` (#2775) via NachoSoto (@NachoSoto)
* `Signing`: inject `ClockType` to ensure hardcoded signatures don't
fail when intermediate key expires (#2771) via NachoSoto (@NachoSoto)

---------

Co-authored-by: NachoSoto <ignaciosoto90@gmail.com>
tonidero added a commit to RevenueCat/purchases-android that referenced this pull request Jul 12, 2023
…um (#1134)

### Description
This adds a `isVerified` property to the `VerificationResult` enum for
convenience when dealing with the verification results. Android version
of: RevenueCat/purchases-ios#2788
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants