TODO: Needs a LimelightCryptoProvider implementation for each platform to work. Untested (and probably broken) on Android. Needs more testing in general, especially in corner cases.