Мне нужно проверить подпись, которая является функцией безопасности в Google Developer android API. У них есть рабочий пример, который написан на kotlin.
Атм. Я пытаюсь преобразовать этот код:
val decodedKey = Base64.decode(encodedPublicKey, Base64.DEFAULT)
val keyFactory = KeyFactory.getInstance("RSA")
return keyFactory.generatePublic(X509EncodedKeySpec(decodedKey))
Исправлено encodedPublicKey
. Я получаю его от Google.
Я установил phpseclib
и в настоящее время я пытаюсь преобразовать приведенный выше код:
$decodedKey = base64_decode($encodedPublicKey);
$x509 = new X509();
$x509->loadX509($encodedPublicKey);
$rsa = $x509->getPublicKey();
return [$rsa, $x509];
Я обнаружил, что даже base64_decode($encodedPublicKey)
не работает. Он ничего не возвращает, в то время как код kotlin Base64.decode(encodedPublicKey, Base64.DEFAULT)
возвращает много декодированных ключей, например:
D/IABUtil/Security: decodedKey 0 :48
EDIT
kotlins Base64.decode(encodedPublicKey, Base64.DEFAULT)
возвращает байтовый массив. Мне удалось получить тот же результат, используя unpack()
в php:
$decodedKey = unpack('c*', $decodedKey); // ByteArray