Bonjour,
J'utilise l'API bouncycastle pour valider des capsules de signatures CMS.
La méthode verify sur l'objet SignerInformation me valide bien les signatures de ma capsule.
Cependant chaque signature possède un jeton d'horodatage, il me faut récupérer ce jeton puis, à l'intérieur de celui-ci, le timestamp. Voici ci-dessous mon code, qui plante à la ligne 4 (classCastException)
merci d'avance de votre aide[/b]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //pour chaque signerInfo de la capsule 1 ASN1Set unauthenticatedAttributes = signerInfo.getUnauthenticatedAttributes(); 2 Attribute jeton = new Attribute((ASN1Sequence)unauthenticatedAttributes.getObjectAt(0)); 3 ASN1Set jetonAttrValues = jeton.getAttrValues(); 4 ContentInfo content = ContentInfo.getInstance(jetonAttrValues.getObjectAt(0)); 5 SignedData signedDataJeton = SignedData.getInstance(content.getContent()); 6 ContentInfo jetonInfo = signedDataJeton.getEncapContentInfo(); 7 ByteArrayInputStream bais = new ByteArrayInputStream(((DEROctetString)jetonInfo.getContent()).getOctets()); 8 ASN1InputStream asnis = new ASN1InputStream(bais); 9 ASN1Sequence asnseq = ASN1Sequence.getInstance(asnis.readObject()); 10 String timeStampingDate = DERGeneralizedTime.getInstance(asnseq.getObjectAt(4)).getTime();
Partager