Совместимы ли реализации DSA .Net и Java?

Я пытаюсь поставить цифровую подпись на запросы, сделанные мобильным клиентом, работающим под управлением J2ME, и хочу проверить подпись .Net Framework.

Кто-нибудь знает, если реализации

DSACryptoServiceProvider //.Net

и

Signature.getInstance("SHA1withDSA", "SUN") //Java

совместимы? Или у кого-нибудь есть идея получше?


После некоторого исследования я нашел эту библиотеку, которая, похоже, имеет API-интерфейсы DSA для C # и Java с одинаковыми базовыми реализациями: http://www.bouncycastle.org

У кого-нибудь есть опыт с этим?


person Manu    schedule 03.12.2009    source источник


Ответы (4)


Мне пришлось иметь дело с J2ME => .Net Web Service. И у меня были проблемы с шифрованием. Я не уверен в DSA. Java и .Net, насколько мне известно, отличаются шифрованием в DES и AES.

Это не ответ на ваш вопрос, но я думаю, это может вам помочь.

Есть библиотека Bouncy Castle:

Выпуски для Java: http://www.bouncycastle.org/latest_releases.html (выберите J2ME один)

Выпуски для C # http://www.bouncycastle.org/csharp/

Я использовал их без головной боли. Документация неплохая, но и не очень хорошая. Но версии Java и C # совместимы.

person JCasso    schedule 03.12.2009

Они должны быть совместимы, иначе веб-сервисы Java и .NET не были бы совместимы, и я точно знаю, что они

person RA.    schedule 06.12.2009

.NET и Java кодируют подписи по-разному. В противном случае они должны быть совместимы. Подробнее в другом ответе.

person Rasmus Faber    schedule 16.12.2009

Насколько я понимаю, DSA / SHA1 - это стандартные алгоритмы (или RFC, но неважно), поэтому более чем вероятно, что они взаимозаменяемы.

person Romain    schedule 03.12.2009