Android и Windows не имеют одинаковых алгоритмов TLS - PullRequest
2 голосов
/ 27 августа 2011

Я использую TLS между Windows 7, действующей в качестве сервера, и Android 2.2, действующей в качестве клиента.Сертификат был создан с помощью makecert.exe.Создание сокета SSL работает на обоих концах, но переговоры на стороне сервера сообщают, что две конечные точки не используют общий алгоритм и поэтому не могут взаимодействовать друг с другом.оконная точка Windows выступает в роли клиента, поэтому я знаю, что часть TLS работает.Есть ли способ обновить Android (в данном случае эмулятор), чтобы иметь необходимые алгоритмы?Я спрашиваю в общем смысле.Я подумал, что кто-то уже знает, как решить эту проблему ... Я надеюсь, по крайней мере.

Ответы [ 2 ]

1 голос
/ 28 августа 2011

Оказывается, в этом конкретном окне Windows я создал сертификат подписи, а не сертификат обмена данными. Я забыл параметр "небо" в инструменте командной строки makecert.exe. Однажды я установил, что это работает как шарм.

Спасибо за все ответы. Я ценю это.

0 голосов
/ 27 августа 2011

Если вы не используете неправильное имя, например «TLS» вместо «TLSv1», загрузите SpongyCastle и зарегистрируйте его в качестве поставщика:

static {
    Security.addProvider(new org.spongycastle.jce.provider.BouncyCastleProvider());
}

тогда получите ваш SSLContext примерно так:

SSLContext.getInstance("TLS", "SC");

Может показаться, что BouncyCastle предварительно загружен на Android, но это очень старая версия с ограниченными алгоритмами. Кто-то перепаковал новый BouncyCastle, чтобы избежать проблем ClassLoader.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...