Java PkiHeader от SCEP-запроса
-
01-10-2019 - |
Вопрос
Недавно я начал смотреть на разработку простого CA / SCEP-сервера. В то время как Ca не было большим количеством проблем (не большая часть CA), SCEP-сервер бросил меня на несколько петлей в одном конкретном месте.
До сих пор я правильно отвечаю на запросы «GetCacert» и «GetCacapaP». Теперь я пытаюсь ответить на запрос «pkioperation». Я на самом деле могу создать сертификацию с запросом, подписать его и все хорошие вещи. Проблема в том, что я должен добавить некоторые «атрибуты» на ответ ...
gen1.addSigner(this.rootKeyPair.getPrivate(), this.getRootCertificate(), CMSSignedGenerator.DIGEST_SHA1, new AttributeTable(attributes), null);
CMSSignedData finalData = gen1.generate(msg, true, new BouncyCastleProvider());
В частности, получателю.
Проблема в том, что я борюсь, чтобы получить атрибуты из первоначального запроса. Поскольку ReciePientnonce должен быть копией SenderRonce, я пытался вытащить этот конкретный атрибут из сообщения PKIOPERATION. Вот мой код до сих пор ...
Base64 base64 = new Base64();
ASN1Object object = ASN1Object.fromByteArray(base64.decode(request));
//The "request" is the "message" from scep
ASN1Sequence sequence = ASN1Sequence.getInstance(object);
// PKIMessage.getInstance(sequence);
// PKIHeader.getInstance(sequence);
// PKIConfirmContent.getInstance(sequence);
// PKIBody.getInstance(sequence);
// PKIStatusInfo.getInstance(sequence);
// PKIFreeText.getInstance(sequence);
// PKIFailureInfo.getInstance(sequence);
// PKIStatus.getInstance(sequence);
Последовательность действительна, но все прокомментированные линии все сбой. Есть предположения?
Спасибо!
Решение
Нашел это. Jscep. имеет класс под названием «Pkimessage», который делает все расставание для вас.