package com.coulterpeterson.floatnative.data import android.util.Base64 import java.security.MessageDigest import java.security.SecureRandom object PKCEManager { fun generateCodeVerifier(): String { val secureRandom = SecureRandom() val codeVerifier = ByteArray(32) secureRandom.nextBytes(codeVerifier) return Base64.encodeToString(codeVerifier, Base64.URL_SAFE or Base64.NO_WRAP or Base64.NO_PADDING) } fun generateCodeChallenge(verifier: String): String { val bytes = verifier.toByteArray(Charsets.US_ASCII) val md = MessageDigest.getInstance("SHA-256") val digest = md.digest(bytes) return Base64.encodeToString(digest, Base64.URL_SAFE or Base64.NO_WRAP or Base64.NO_PADDING) } }