github
193 of 331 new or added lines in 7 files covered. (58.31%)
5872 of 7598 relevant lines covered (77.28%)
24.72 hits per line
| 1 |
//
|
|
| 2 |
// JWTVerifier.swift
|
|
| 3 |
// Supabase
|
|
| 4 |
//
|
|
| 5 |
// Created by Claude on 06/10/25.
|
|
| 6 |
//
|
|
| 7 |
|
|
| 8 |
import Foundation |
|
| 9 |
|
|
| 10 |
enum JWTAlgorithm: String {
|
|
| 11 |
case rs256 = "RS256" |
|
| 12 |
|
|
| 13 |
func verify( |
|
| 14 |
jwt: DecodedJWT, |
|
| 15 |
jwk: JWK |
|
|
NEW
|
) -> Bool {
|
× |
|
NEW
|
let message = "\(jwt.raw.header).\(jwt.raw.payload)".data(using: .utf8)! |
× |
|
NEW
|
switch self {
|
× |
|
NEW
|
case .rs256: |
× |
| 20 |
#if canImport(Security) |
|
|
NEW
|
return SecKeyVerifySignature( |
× |
|
NEW
|
jwk.rsaPublishKey!, |
× |
|
NEW
|
.rsaSignatureMessagePKCS1v15SHA256, |
× |
|
NEW
|
message as CFData, |
× |
|
NEW
|
jwt.signature as CFData, |
× |
|
NEW
|
nil |
× |
|
NEW
|
) |
× |
| 28 |
#else |
|
| 29 |
return false |
|
| 30 |
#endif |
|
|
NEW
|
} |
× |
|
NEW
|
} |
× |
| 33 |
} |