diff --git a/.swift-version b/.swift-version index f2c6cb6..819e07a 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -4.2.3 +5.0 diff --git a/.travis.yml b/.travis.yml index 1fd5fb0..b54d50d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,17 +25,17 @@ matrix: dist: xenial sudo: required services: docker - env: DOCKER_IMAGE=swift:4.2.3 + env: DOCKER_IMAGE=swift:4.2.4 SWIFT_SNAPSHOT=4.2.4 - os: linux dist: xenial sudo: required services: docker - env: DOCKER_IMAGE=swift:4.2.3 SWIFT_SNAPSHOT=$SWIFT_DEVELOPMENT_SNAPSHOT + env: DOCKER_IMAGE=swift:5.0-xenial - os: linux dist: xenial sudo: required services: docker - env: DOCKER_IMAGE=ubuntu:18.04 + env: DOCKER_IMAGE=swift:5.0 SWIFT_SNAPSHOT=$SWIFT_DEVELOPMENT_SNAPSHOT - os: osx osx_image: xcode9.2 sudo: required @@ -47,8 +47,12 @@ matrix: - os: osx osx_image: xcode10.1 sudo: required + env: SWIFT_SNAPSHOT=4.2.1 - os: osx - osx_image: xcode10.1 + osx_image: xcode10.2 + sudo: required + - os: osx + osx_image: xcode10.2 sudo: required env: SWIFT_SNAPSHOT=$SWIFT_DEVELOPMENT_SNAPSHOT diff --git a/Package.swift b/Package.swift index 1aebf27..6c1205e 100644 --- a/Package.swift +++ b/Package.swift @@ -1,7 +1,7 @@ -// swift-tools-version:4.0 +// swift-tools-version:5.0 /** - * Copyright IBM Corporation 2018 + * Copyright IBM Corporation 2018-2019 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Package@swift-4.swift b/Package@swift-4.swift new file mode 100644 index 0000000..a6684d5 --- /dev/null +++ b/Package@swift-4.swift @@ -0,0 +1,41 @@ +// swift-tools-version:4.0 + +/** + * Copyright IBM Corporation 2018-2019 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + **/ + +import PackageDescription + +let package = Package( + name: "SwiftJWT", + products: [ + // Products define the executables and libraries produced by a package, and make them visible to other packages. + .library( + name: "SwiftJWT", + targets: ["SwiftJWT"] + ) + ], + dependencies: [ + .package(url: "https://github.com/IBM-Swift/BlueRSA.git", from: "1.0.24"), + .package(url: "https://github.com/IBM-Swift/BlueCryptor.git", from: "1.0.0"), + .package(url: "https://github.com/IBM-Swift/BlueECC.git", from: "1.1.0"), + .package(url: "https://github.com/IBM-Swift/LoggerAPI.git", from: "1.7.0"), + .package(url: "https://github.com/IBM-Swift/KituraContracts.git", from: "1.1.0") + ], + targets: [ + .target(name: "SwiftJWT", dependencies: ["CryptorRSA", "LoggerAPI", "KituraContracts", "Cryptor", "CryptorECC"]), + .testTarget(name: "SwiftJWTTests", dependencies: ["SwiftJWT"]) + ] +) diff --git a/Sources/SwiftJWT/BlueHMAC.swift b/Sources/SwiftJWT/BlueHMAC.swift index 4aea43c..adefd41 100644 --- a/Sources/SwiftJWT/BlueHMAC.swift +++ b/Sources/SwiftJWT/BlueHMAC.swift @@ -47,7 +47,11 @@ class BlueHMAC: SignerAlgorithm, VerifierAlgorithm { guard let hmac = HMAC(using: algorithm, key: key).update(data: data)?.final() else { throw JWTError.invalidPrivateKey } + #if swift(>=5.0) + return Data(hmac) + #else return Data(bytes: hmac) + #endif }