Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CI #137

Closed
wants to merge 32 commits into from
Closed

Update CI #137

wants to merge 32 commits into from

Conversation

ptoffy
Copy link
Member

@ptoffy ptoffy commented Feb 19, 2024

@ptoffy ptoffy marked this pull request as ready for review February 19, 2024 19:15
@ptoffy ptoffy added this to the v5 milestone Feb 19, 2024
@0xTim
Copy link
Member

0xTim commented Feb 20, 2024

@ptoffy we can merge this if it's only the SIWA integration test failing

@ptoffy ptoffy linked an issue Feb 21, 2024 that may be closed by this pull request
@0xTim 0xTim changed the base branch from jwtkit-5 to main February 21, 2024 18:09
@0xTim
Copy link
Member

0xTim commented Feb 22, 2024

@ptoffy this will need rebasing

.github/workflows/benchmark.yml Outdated Show resolved Hide resolved
@@ -25,7 +25,7 @@ jobs:
- name: Use local JWTKit
run: swift package --package-path jwt edit jwt-kit --path ./jwt-kit
- name: Run tests with Thread Sanitizer
run: swift test --package-path jwt --sanitize=thread
run: swift test --package-path jwt --sanitize=thread -Xswiftc -warnings-as-errors
Copy link
Member

Choose a reason for hiding this comment

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

This is a good way to make sure CI never ever passes, given the way warnings tend to show up without warning (no pun intended) thanks to changes in dependencies.

ptoffy and others added 20 commits February 24, 2024 22:21
* Start moving away from BoringSSL

* Start converting RSA

* Update RSA signer

* Some fixes

* Add possible RSA pubkey creation algorithm

* Add prime number generator with Miller-Rabin test

* Prime generation performance improvement

* Attempt at private key calculation

* RSA prime generation take 2

* API tidy up

* Performance improvements

* Even more speed

* RSA tidy up

* Fix JWTSigner with new RSA impl

* Add RSA tests and polish some stuff

* Remove unused method

* Minor improvements

* Add GCD test

* Get ECDSA compiling

* Add key gen test + fixups

* Add RSA cert support + enforce bigger key sizes

* Start adding ECDSA tests

* Generify ECDSAKey

* Abstract more and add P384 and P521 keys

* Adapt curve sizes

* Fix some tests

* Base64URL decode raw key elements

* Update byteRange names

* Remove BoringSSL

* Update error description

* Fix wrong overload resolution

* Add padding option for RSA signer

* Update platform versions and start converting X5C

* Convert X5CVerifier and X5CTests (SHA256)

* Add certificate creation scripts

* Fix comment

* Address most requested issues

* Add docs and replace struct with tuple

* Remove valid X5C print statement

* Remove `rsa_oaep_misc_test` test vectors

* Performance improvements

* Remove unused files

* Apply suggestions

* 🤦‍♂️

* Minor fixes

* Refactor RSA init

* Make RSAKey a struct and update docs
* Implement `JWTKeyCollection` and hide `JWTSigner`

* Make `JWTSigner` `Sendable`

* Add comments and remove unused method

* Add warning when overwriting kid

* Remove `JWTSigners`

* Make `JWKSigner` `Sendable`

* Cleanups

* Update DocC comments

* Minor improvements
Add RS256 pre-generated token test
* Add `Sendable` support

* Add Sendable conformance to tests

* Make X5CVerifier a struct

---------

Co-authored-by: Gwynne Raskind <gwynne@vapor.codes>
* Add support for custom time validation X5Cs

* Clean up and move JSONDecoder settings out of X5C

* Add more assertions in new X5C test

* Refactor X5CTests
* Add ECDSAKey PEM export

* Use public key from private when possible

* Refactor ECDSAKey init
Start removing exports
* Adopt `package` access and add RSA key PEM export

* Remove unused code

* Make equatable conformance public

* Optimise RSAKey Equatable implementation
* Start removing enums

* Update JWTError

* Add custom decoding for new structs

* Adopt a more structured JWTError

* Minor improvements

* Test integration with v5 of JWT

* Make JWK use existing curves

* Nit: spacing

---------

Co-authored-by: Gwynne Raskind <gwynne@vapor.codes>
* Add RSA-PSS signature algorithm support

* Add PSS signers and tests

* Replace `Data(contentsOf:)` with `URLSession`

* Remove Apple jwks test

* Fix keycollection's getSigner method

* Fix keycollection's getSigner method

---------

Co-authored-by: Paul <paultoffoloni@gmail.com>
* Add option to sign tokens with x5c chains

* Add new test and fixes
* Add option to fetch RSA primitives

* Typo

* Remove unused files

* Update NOTICES
ptoffy and others added 12 commits February 24, 2024 22:21
* Create first idea of split RSA keys

* Refactor signer and update docs

* Split ECDSA keys

* Remove useless parameter

* Update EdDSA

* Rename file

* Adjust spacing

* Remove useless implementations

* Clean up some access modifiers

* Move RSA to insecure namespace
* Add customisable fields to JWTHeader

* Remove unused field

* Fix en/decoding logic and add remove `package` use

* Make customFields not optional

* Add correct init to JWTHeader

* Fix CodingKey mismatch

* Remove `CaseIterable` conformance

* Fix
* Improve header structure

* Allow for custom JWT de/serialisation

* Make properties return nil instead of throwing

* Make the new API easier to use

* Add platform-agnostic de/compression algorithms

* Remove unnecessary test
Add 2048 bits key size boundary for RSA keys
Co-authored-by: Gwynne Raskind <gwynne@vapor.codes>
@ptoffy
Copy link
Member Author

ptoffy commented Feb 24, 2024

Closed in favour of #141

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.

Enable Warnings as Errors in CI
4 participants