// recupera il signing time di un firmatario private static Date getSigningTime(SignerInformation signer) throws FirmapiuException { AttributeTable signedAttr = signer.getSignedAttributes(); Attribute signingTimeAttr = signedAttr.get(CMSAttributes.signingTime); if (signingTimeAttr != null) { Enumeration<?> en = signingTimeAttr.getAttrValues().getObjects(); Date signingTime = null; Object obj = en.nextElement(); try { if (obj instanceof ASN1UTCTime) { ASN1UTCTime asn1Time = (ASN1UTCTime) obj; signingTime = asn1Time.getDate(); } else if (obj instanceof DERUTCTime) { DERUTCTime derTime = (DERUTCTime) obj; signingTime = derTime.getDate(); } return signingTime; } catch (ParseException e) { // TODO eccezioni ammodo throw new FirmapiuException(); } } else { // non ha trovato il signing time come attributo // TODO eccezioni ammodo throw new FirmapiuException(); } } // fine metodo
public static Date toDate(final ASN1UTCTime attrValue) throws DSSException { try { return attrValue.getDate(); } catch (ParseException e) { throw new DSSException(e); } }