Вопрос

Недавно я начал смотреть на разработку простого 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», который делает все расставание для вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top