Мы должны подписать запрос веб-службы и добавить значение EncapsulatedOCSPValue. Нам дали Java пример, но мы должны сделать это в C#, потому что остальная часть нашего кода находится в C#, и я должен признать, что я действительно не понимаю этого. В примере кода используется Bouncy Castle, и Bouncy Castle имеет реализации Java и C#.
В примере Java встречается следующая строка:
ocspResponse.ifPresent(response ->
generator.addOtherRevocationInfo(id_pkix_ocsp_response, OCSPResponse.getInstance(response)));
Здесь эквивалент C# Bouncy Castle не имеет метода addOtherRevocationInfo
. Что эквивалентно в C#? Будет ли generator.GetGeneratedDigests().Add(...)
таким же?
Редактировать 1:
Мы обнаружили одну вещь: generator.GetGeneratedDigests().Add(...)
не работает, поскольку ничего не добавляет.
Редактировать 2:
Когда я декомпилирую источник в Java, я нахожу:
public void addOtherRevocationInfo(ASN1ObjectIdentifier var1, ASN1Encodable var2) {
this.crls.add(new DERTaggedObject(false, 1, new OtherRevocationInfoFormat(var1, var2)));
}
Здесь crls
это просто ArrayList
. Вот еще один метод, который не реализован в C#, насколько я могу видеть:
public void addCRL(X509CRLHolder var1) {
this.crls.add(var1.toASN1Structure());
}
Так как X509CRLHolder
также не реализован в C#, похоже, что здесь мы спускаемся в кроличью нору ,
Редактировать 3:
Мы разочаровались в поиске решения этой проблемы (оказывается, нам этот вызов не нужен). Версия C# Bouncy Castle, к сожалению, является подмножеством версии Java и, похоже, не имеет аналогов.
Ссылки: