From a62967899bd13b25a8b25e0f8138b48eeff7e116 Mon Sep 17 00:00:00 2001 From: Jimmy Arts Date: Tue, 18 Oct 2016 19:31:29 +0200 Subject: [PATCH 1/3] Linux changes --- Sources/Base64.swift | 2 +- Sources/JWT.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/Base64.swift b/Sources/Base64.swift index 32b18cf..df6191e 100644 --- a/Sources/Base64.swift +++ b/Sources/Base64.swift @@ -4,7 +4,7 @@ import Foundation /// URI Safe base64 encode func base64encode(_ input:Data) -> String { let data = input.base64EncodedData(options: NSData.Base64EncodingOptions(rawValue: 0)) - let string = NSString(data: data, encoding: String.Encoding.utf8.rawValue) as! String + let string = String(describing: NSString(data: data, encoding: String.Encoding.utf8.rawValue)) return string .replacingOccurrences(of: "+", with: "-", options: NSString.CompareOptions(rawValue: 0), range: nil) .replacingOccurrences(of: "/", with: "_", options: NSString.CompareOptions(rawValue: 0), range: nil) diff --git a/Sources/JWT.swift b/Sources/JWT.swift index 84f4809..1534916 100644 --- a/Sources/JWT.swift +++ b/Sources/JWT.swift @@ -81,7 +81,7 @@ public func encode(_ payload:Payload, algorithm:Algorithm) -> String { return nil } - let header = encodeJSON(["typ": "JWT" as AnyObject, "alg": algorithm.description as AnyObject])! + let header = encodeJSON(["typ": "JWT", "alg": algorithm.description])! let payload = encodeJSON(payload)! let signingInput = "\(header).\(payload)" let signature = algorithm.sign(signingInput) From 7d8317ba10e7bdfd6437615aec2480f8531f4c9a Mon Sep 17 00:00:00 2001 From: Jimmy Arts Date: Tue, 18 Oct 2016 19:45:17 +0200 Subject: [PATCH 2/3] Linux changes --- Sources/JWT.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Sources/JWT.swift b/Sources/JWT.swift index 1534916..078957f 100644 --- a/Sources/JWT.swift +++ b/Sources/JWT.swift @@ -96,7 +96,7 @@ open class PayloadBuilder { return payload["iss"] as? String } set { - payload["iss"] = newValue as AnyObject? + payload["iss"] = newValue } } @@ -105,7 +105,7 @@ open class PayloadBuilder { return payload["aud"] as? String } set { - payload["aud"] = newValue as AnyObject? + payload["aud"] = newValue } } @@ -118,7 +118,7 @@ open class PayloadBuilder { return nil } set { - payload["exp"] = newValue?.timeIntervalSince1970 as AnyObject? + payload["exp"] = newValue?.timeIntervalSince1970 } } @@ -131,7 +131,7 @@ open class PayloadBuilder { return nil } set { - payload["nbf"] = newValue?.timeIntervalSince1970 as AnyObject? + payload["nbf"] = newValue?.timeIntervalSince1970 } } @@ -144,7 +144,7 @@ open class PayloadBuilder { return nil } set { - payload["iat"] = newValue?.timeIntervalSince1970 as AnyObject? + payload["iat"] = newValue?.timeIntervalSince1970 } } From 9f0b1379c67ee3fec8a8903ebe3511722c28a354 Mon Sep 17 00:00:00 2001 From: Jimmy Arts Date: Wed, 19 Oct 2016 09:16:39 +0200 Subject: [PATCH 3/3] Fixed optional issue --- Sources/Base64.swift | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Sources/Base64.swift b/Sources/Base64.swift index df6191e..9bb73ed 100644 --- a/Sources/Base64.swift +++ b/Sources/Base64.swift @@ -4,7 +4,10 @@ import Foundation /// URI Safe base64 encode func base64encode(_ input:Data) -> String { let data = input.base64EncodedData(options: NSData.Base64EncodingOptions(rawValue: 0)) - let string = String(describing: NSString(data: data, encoding: String.Encoding.utf8.rawValue)) + guard let cocoaString = NSString(data: data, encoding: String.Encoding.utf8.rawValue) else { + return "" + } + let string = String(describing: cocoaString) return string .replacingOccurrences(of: "+", with: "-", options: NSString.CompareOptions(rawValue: 0), range: nil) .replacingOccurrences(of: "/", with: "_", options: NSString.CompareOptions(rawValue: 0), range: nil) @@ -14,15 +17,15 @@ func base64encode(_ input:Data) -> String { /// URI Safe base64 decode func base64decode(_ input:String) -> Data? { let rem = input.characters.count % 4 - + var ending = "" if rem > 0 { let amount = 4 - rem ending = String(repeating: "=", count: amount) } - + let base64 = input.replacingOccurrences(of: "-", with: "+", options: NSString.CompareOptions(rawValue: 0), range: nil) .replacingOccurrences(of: "_", with: "/", options: NSString.CompareOptions(rawValue: 0), range: nil) + ending - + return Data(base64Encoded: base64, options: NSData.Base64DecodingOptions(rawValue: 0)) }