Совместимы ли реализация.Net и Java DSA?
Я пытаюсь подписать запросы, сделанные мобильным клиентом под управлением J2ME, и хочу проверить подпись.Net Framework.
Кто-нибудь знает, если реализации
DSACryptoServiceProvider //.Net
а также
Signature.getInstance("SHA1withDSA", "SUN") //Java
совместимы? Или у кого-нибудь есть идея получше?
После некоторых исследований я обнаружил, что эта библиотека имеет API-интерфейсы DSA для C# и Java с одинаковыми базовыми реализациями: http://www.bouncycastle.org/
У кого-нибудь есть опыт с этим?
4 ответа
Они должны быть совместимы, иначе бы не было веб-сервисов Java и.NET, и я точно знаю, что они
.NET и Java кодируют подписи по-разному. В противном случае они должны быть совместимы. Подробнее в другом ответе.
Мне приходилось иметь дело с 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# совместимы.
Насколько я понимаю, DSA/SHA1 - это стандартные алгоритмы (или RFC, но не берите в голову), так что, скорее всего, они взаимозаменяемы.