Сравнение подписанных данных и подписи в ответах Android Market с использованием Ruby on Rails - PullRequest
3 голосов
/ 27 февраля 2012

Мне интересно, есть ли у кого-нибудь ссылки на любую литературу о том, как подойти к этой проблеме.

Я получаю два набора данных из Android Market; «Подписанные данные», JSON-представление покупки, и «Подпись», закодированное Base64, зашифрованное представление подписанных данных.

Я думаю, что смысл в том, чтобы использовать открытый ключ для шифрования подписанных данных и сравнить их с подписью?

Моя стратегия до сих пор была следующей:

1) Base64 декодирует открытый ключ и использует OpenSSL :: PKey :: RSA.new для создания объекта открытого ключа

2) Base64 расшифровывает подпись, возвращенную с Android

3) Зашифруйте подписанные данные с помощью открытого ключа и сравните с подписью

Как правильно сделать это в Ruby?

1 Ответ

0 голосов
/ 28 февраля 2012

Вот ответ: Как проверить биллинг Android в приложении на сервере с помощью Ruby?

Объект открытого ключа, созданный на первом шаге, имеет удобный метод verifyсравнить декодированные Base64 данные на шаге 2 с подписанными данными.

verified = key.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(signature), signed_data)

Счастье.

...