diff --git a/Sources/Base64.swift b/Sources/Base64.swift index 32b18cf..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 = NSString(data: data, encoding: String.Encoding.utf8.rawValue) as! String + 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)) } diff --git a/Sources/JWT.swift b/Sources/JWT.swift index 84f4809..078957f 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) @@ -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 } }