275 * @throws IOException on error
276 */
277 public Integer getReasonCode() throws IOException {
278 Object obj = getExtension(PKIXExtensions.ReasonCode_Id);
279 if (obj == null)
280 return null;
281 CRLReasonCodeExtension reasonCode = (CRLReasonCodeExtension)obj;
282 return reasonCode.get(CRLReasonCodeExtension.REASON);
283 }
284
285 /**
286 * Returns a printable string of this revoked certificate.
287 *
288 * @return value of this revoked certificate in a printable form.
289 */
290 @Override
291 public String toString() {
292 StringBuilder sb = new StringBuilder();
293
294 sb.append(serialNumber.toString());
295 sb.append(" On: " + revocationDate.toString());
296 if (certIssuer != null) {
297 sb.append("\n Certificate issuer: " + certIssuer);
298 }
299 if (extensions != null) {
300 Collection<Extension> allEntryExts = extensions.getAllExtensions();
301 Extension[] exts = allEntryExts.toArray(new Extension[0]);
302
303 sb.append("\n CRL Entry Extensions: " + exts.length);
304 for (int i = 0; i < exts.length; i++) {
305 sb.append("\n [" + (i+1) + "]: ");
306 Extension ext = exts[i];
307 try {
308 if (OIDMap.getClass(ext.getExtensionId()) == null) {
309 sb.append(ext.toString());
310 byte[] extValue = ext.getExtensionValue();
311 if (extValue != null) {
312 DerOutputStream out = new DerOutputStream();
313 out.putOctetString(extValue);
314 extValue = out.toByteArray();
315 HexDumpEncoder enc = new HexDumpEncoder();
316 sb.append("Extension unknown: "
317 + "DER encoded OCTET string =\n"
318 + enc.encodeBuffer(extValue) + "\n");
319 }
320 } else
321 sb.append(ext.toString()); //sub-class exists
322 } catch (Exception e) {
323 sb.append(", Error parsing this extension");
324 }
325 }
326 }
327 sb.append("\n");
328 return sb.toString();
329 }
330
331 /**
332 * Return true if a critical extension is found that is
333 * not supported, otherwise return false.
334 */
335 public boolean hasUnsupportedCriticalExtension() {
336 if (extensions == null)
337 return false;
338 return extensions.hasUnsupportedCriticalExtension();
|
275 * @throws IOException on error
276 */
277 public Integer getReasonCode() throws IOException {
278 Object obj = getExtension(PKIXExtensions.ReasonCode_Id);
279 if (obj == null)
280 return null;
281 CRLReasonCodeExtension reasonCode = (CRLReasonCodeExtension)obj;
282 return reasonCode.get(CRLReasonCodeExtension.REASON);
283 }
284
285 /**
286 * Returns a printable string of this revoked certificate.
287 *
288 * @return value of this revoked certificate in a printable form.
289 */
290 @Override
291 public String toString() {
292 StringBuilder sb = new StringBuilder();
293
294 sb.append(serialNumber.toString());
295 sb.append(" On: ").append(revocationDate);
296 if (certIssuer != null) {
297 sb.append("\n Certificate issuer: ").append(certIssuer);
298 }
299 if (extensions != null) {
300 Collection<Extension> allEntryExts = extensions.getAllExtensions();
301 Extension[] exts = allEntryExts.toArray(new Extension[0]);
302
303 sb.append("\n CRL Entry Extensions: ").append(exts.length);
304 for (int i = 0; i < exts.length; i++) {
305 sb.append("\n [").append(i + 1).append("]: ");
306 Extension ext = exts[i];
307 try {
308 if (OIDMap.getClass(ext.getExtensionId()) == null) {
309 sb.append(ext.toString());
310 byte[] extValue = ext.getExtensionValue();
311 if (extValue != null) {
312 DerOutputStream out = new DerOutputStream();
313 out.putOctetString(extValue);
314 extValue = out.toByteArray();
315 HexDumpEncoder enc = new HexDumpEncoder();
316 sb.append("Extension unknown: ").append("DER encoded OCTET string =\n")
317 .append(enc.encodeBuffer(extValue)).append('\n');
318 }
319 } else
320 sb.append(ext.toString()); //sub-class exists
321 } catch (Exception e) {
322 sb.append(", Error parsing this extension");
323 }
324 }
325 }
326 sb.append("\n");
327 return sb.toString();
328 }
329
330 /**
331 * Return true if a critical extension is found that is
332 * not supported, otherwise return false.
333 */
334 public boolean hasUnsupportedCriticalExtension() {
335 if (extensions == null)
336 return false;
337 return extensions.hasUnsupportedCriticalExtension();
|