Проверка и расшифровка подписи, сгенерированной с помощью pvk.key и криптографического API BouncyCastle.

У меня есть апплет, который использует файл «foo.key» и строковый пароль для создания объекта privateKey с использованием API BouncyCastle. Затем создается подпись с использованием этого объекта privateKey и строки, такой как «MYNAMEHERE». Все, что я знаю, это то, что для создания этой подписи используется алгоритм RSA.

Что я хочу сделать, так это расшифровать (или проверить) эту подпись в PHP. У меня есть оба файла publicKey (file.cer) и privateKey (file.key), которые использовались для создания объекта privateKey в Java.

Я пытаюсь использовать функции openssl_verify в PHP, передавая значения:
openssl_verify("MYNAMEHERE", $signature, "file.cer"), где $signature содержит строковое представление объекта подписи, сгенерированного в Java: new String ( подпись).

Я не знаю, является ли этот процесс правильным для проверки подписи или какой процесс кодирования/декодирования я должен выполнить перед использованием этой функции.

Надеюсь, кто-нибудь укажет мне правильное направление!

Заранее спасибо!


person user1121637    schedule 29.12.2011    source источник
comment
+1 за надувной замок в названии...   -  person Mike Purcell    schedule 29.12.2011
comment
@DigitalPrecision это не очень конструктивный комментарий, попробуй без сарказма   -  person Maarten Bodewes    schedule 02.01.2012
comment
в этом вопросе не хватает деталей, постарайтесь дать как можно больше информации   -  person Maarten Bodewes    schedule 02.01.2012
comment
@owlstead: Это была просто шутка, расслабься.   -  person Mike Purcell    schedule 02.01.2012


Ответы (1)


Вы не предоставили достаточно информации, такой как фактическая подпись или то, как она закодирована. Обычно RSA означает RSA в режиме PKCS#1 1.5 с использованием SHA-1 (Google it), который является более или менее используемым сегодня алгоритмом генерации/проверки подписи по умолчанию. В этом случае проверка должна проходить так, как вы описали. Пароль больше не нужен, его можно просто использовать для расшифровки закрытого ключа. Вы по-прежнему можете использовать закрытый ключ, чтобы увидеть, создает ли вход в PHP/openssl те же данные. В противном случае мог использоваться другой хэш или подпись PKCS#1 v2.1.

person Maarten Bodewes    schedule 02.01.2012
comment
Спасибо за ответ @owlstead После того, как я попробовал несколько различных функций в PHP, я застрял в этой области, поэтому я решил выполнить проверку и в Java, но все же у меня есть проблемы, чтобы узнать, как была создана подпись (поскольку это не я создал ключи). У меня есть оба файла, .key и .cer. Как лучше всего подписать простую строку, например: HELLOWORLD, с помощью privateKey, а затем проверить ее с помощью файла .cer ?? Я надеюсь, что вы можете помочь мне снова, спасибо заранее! - person user1121637; 02.01.2012