Получение открытого ключа из цифровой подписи - PullRequest
1 голос
/ 13 июня 2011

Я работаю над проектом лицензирования на основе Java. У меня есть файл цифрового сертификата и данные, для которых была сгенерирована подпись. Существуют ли какие-либо API или средства для получения открытого ключа из этой информации? В основном открытый ключ от данных и информации цифрового сертификата.

Ответы [ 4 ]

2 голосов
/ 13 июня 2011

Если ваша цифровая подпись имеет формат PKCS # 7 - не отсоединен, то существует вероятность, что отправитель включил бы сертификат в состав цифровой подписи.

Вам потребуется проанализировать подпись, чтобы получить сертификат.

0 голосов
/ 13 июня 2011

Ваш вопрос очень расплывчатый ИМХО.

У меня есть файл цифрового сертификата и данные, для которых была сгенерирована подпись

Если в файле сертификата есть открытый ключ, используемый для проверки подписи, вы можете загрузитьон использует стандарт Java API (при условии сертификатов X509).

FileInputStream fin = new FileInputStream("PathToCertificate");
CertificateFactory f = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate)f.generateCertificate(fin);
PublicKey pk = certificate.getPublicKey();

Получив открытый ключ, вы можете использовать его для проверки подписи.
Это то, что вам нужно?

0 голосов
/ 13 июня 2011

Сертификат должен содержать ссылку на идентификатор ключа, используемого для сертификации ваших данных. Из этого ключа должна быть возможность связаться с соответствующим центром сертификации и получить открытый ключ, указав его идентификатор. Он также может быть доступен из общедоступного хранилища.

Идентификатор центра сертификации также должен присутствовать в этом сертификате.

Конечно, есть API, но вопрос в том, какую платформу вы используете для цифровых подписей? У тебя есть его имя? Вы знаете тип сертификата?

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