Статус: Новичок
Группы: Участники
Зарегистрирован: 10.01.2013(UTC) Сообщений: 2 Откуда: Новосибирск
|
Пытаюсь подружить автоматическую обработку WS-SecurityPolicy у Apache CXF и ГОСТовские алгоритмы. Клиентская часть (собственно сама подпись) завелась с помощью самописного расширения. А вот с серверной (проверка подписи) - проблема. В WSS4J условие на длину публичного ключа проверяется таким нехитрым кодом: Код:
/**
* Check the asymmetric key length
*/
public void checkAsymmetricKeyLength(
PublicKey publicKey
) throws WSSecurityException {
if (publicKey == null) {
return;
}
if (publicKey instanceof RSAPublicKey) {
int modulus = ((RSAPublicKey)publicKey).getModulus().bitLength();
if (modulus < algorithmSuite.getMinimumAsymmetricKeyLength()
|| modulus > algorithmSuite.getMaximumAsymmetricKeyLength()) {
LOG.debug(
"The asymmetric key length does not match the requirement"
);
throw new WSSecurityException(WSSecurityException.INVALID_SECURITY);
}
} else if (publicKey instanceof DSAPublicKey) {
int length = ((DSAPublicKey)publicKey).getParams().getP().bitLength();
if (length < algorithmSuite.getMinimumAsymmetricKeyLength()
|| length > algorithmSuite.getMaximumAsymmetricKeyLength()) {
LOG.debug(
"The asymmetric key length does not match the requirement"
);
throw new WSSecurityException(WSSecurityException.INVALID_SECURITY);
}
} else {
LOG.debug(
"An unknown public key was provided"
);
throw new WSSecurityException(WSSecurityException.INVALID_SECURITY);
}
}
Как несложно понять, отсутствие общего API для получения длины публичного ключа товарищи заменяют перебором известных подклассов PublicKey. И конечно же ru.CryptoPro.JCP.Key.GostPublicKey в этом празднике жизни не учавствует. Есть желание попатчить исходники WSS4J, но не понятно, как на самом деле получить эту злосчастную длину.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close