Ali Kabiri
11/04/2020, 8:10 AMmbonnin
11/04/2020, 8:26 AMElka
11/04/2020, 9:02 AM// Based on the implementation at <https://github.com/auth0/JWTDecode.swift/>
actual fun decodeBase64(strEncoded: String): String {
val base64 = strEncoded
.replace("-", "+")
.replace("_", "/")
val padding: String by lazy {
val length = base64.length
val requiredLength = 4 * ceil(length / 4.0).roundToInt()
val paddingLength = requiredLength - length
"=".repeat(paddingLength)
}
return NSData.create(base64EncodedString = base64 + padding, options = NSDataBase64DecodingIgnoreUnknownCharacters)?.let {
NSString.create(data = it, encoding = NSUTF8StringEncoding).toString()
} ?: ""
}
Android implementation uses android.util.Base64
Mateusz Krawczuk
11/04/2020, 9:17 AMElka
11/04/2020, 9:54 AM