Java Code Examples for org.bouncycastle.cms.CMSSignedData#getSignerInfos()
The following examples show how to use
org.bouncycastle.cms.CMSSignedData#getSignerInfos() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CAdESSigner.java From signer with GNU Lesser General Public License v3.0 | 6 votes |
private Collection<X509Certificate> getSignersCertificates(CMSSignedData previewSignerData) { Collection<X509Certificate> result = new HashSet<X509Certificate>(); Store<?> certStore = previewSignerData.getCertificates(); SignerInformationStore signers = previewSignerData.getSignerInfos(); Iterator<?> it = signers.getSigners().iterator(); while (it.hasNext()) { SignerInformation signer = (SignerInformation) it.next(); @SuppressWarnings("unchecked") Collection<?> certCollection = certStore.getMatches(signer.getSID()); Iterator<?> certIt = certCollection.iterator(); X509CertificateHolder certificateHolder = (X509CertificateHolder) certIt.next(); try { result.add(new JcaX509CertificateConverter().getCertificate(certificateHolder)); } catch (CertificateException error) { } } return result; }
Example 2
Source File: CAdESSigner.java From signer with GNU Lesser General Public License v3.0 | 6 votes |
@SuppressWarnings("static-access") private CMSSignedData updateWithCounterSignature(final CMSSignedData counterSignature, final CMSSignedData originalSignature, SignerId selector) { // Retrieve the SignerInformation from the countersigned signature final SignerInformationStore originalSignerInfos = originalSignature.getSignerInfos(); // Retrieve the SignerInformation from the countersignature final SignerInformationStore signerInfos = counterSignature.getSignerInfos(); // Add the countersignature SignerInformation updatedSI = originalSignature.getSignerInfos().get(selector) .addCounterSigners(originalSignerInfos.get(selector), signerInfos); // Create updated SignerInformationStore Collection<SignerInformation> counterSignatureInformationCollection = new ArrayList<SignerInformation>(); counterSignatureInformationCollection.add(updatedSI); SignerInformationStore signerInformationStore = new SignerInformationStore( counterSignatureInformationCollection); // Return new, updated signature return CMSSignedData.replaceSigners(originalSignature, signerInformationStore); }
Example 3
Source File: CAdESSignatureWrapperTest.java From dss with GNU Lesser General Public License v2.1 | 6 votes |
@Override protected void verifyOriginalDocuments(SignedDocumentValidator validator, DiagnosticData diagnosticData) { super.verifyOriginalDocuments(validator, diagnosticData); SignatureWrapper signature = diagnosticData.getSignatureById(diagnosticData.getFirstSignatureId()); XmlSignatureDigestReference signatureDigestReference = signature.getSignatureDigestReference(); assertNotNull(signatureDigestReference); List<AdvancedSignature> signatures = validator.getSignatures(); assertEquals(1, signatures.size()); CAdESSignature cadesSignature = (CAdESSignature) signatures.get(0); CMSSignedData cmsSignedData = cadesSignature.getCmsSignedData(); SignerInformationStore signerInfos = cmsSignedData.getSignerInfos(); SignerInformation signerInformation = signerInfos.iterator().next(); SignerInfo signerInfo = signerInformation.toASN1Structure(); byte[] derEncoded = DSSASN1Utils.getDEREncoded(signerInfo); byte[] digest = DSSUtils.digest(signatureDigestReference.getDigestMethod(), derEncoded); String signatureReferenceDigestValue = Utils.toBase64(signatureDigestReference.getDigestValue()); String signatureElementDigestValue = Utils.toBase64(digest); assertEquals(signatureReferenceDigestValue, signatureElementDigestValue); }
Example 4
Source File: BouncyCastleCrypto.java From tutorials with MIT License | 6 votes |
public static boolean verifSignData(final byte[] signedData) throws CMSException, IOException, OperatorCreationException, CertificateException { ByteArrayInputStream bIn = new ByteArrayInputStream(signedData); ASN1InputStream aIn = new ASN1InputStream(bIn); CMSSignedData s = new CMSSignedData(ContentInfo.getInstance(aIn.readObject())); aIn.close(); bIn.close(); Store certs = s.getCertificates(); SignerInformationStore signers = s.getSignerInfos(); Collection<SignerInformation> c = signers.getSigners(); SignerInformation signer = c.iterator().next(); Collection<X509CertificateHolder> certCollection = certs.getMatches(signer.getSID()); Iterator<X509CertificateHolder> certIt = certCollection.iterator(); X509CertificateHolder certHolder = certIt.next(); boolean verifResult = signer.verify(new JcaSimpleSignerInfoVerifierBuilder().build(certHolder)); if (!verifResult) { return false; } return true; }
Example 5
Source File: CAdESTimeStampSigner.java From signer with GNU Lesser General Public License v3.0 | 5 votes |
@Override public List<Timestamp> checkTimeStampOnSignature(byte[] signature) { try { Security.addProvider(new BouncyCastleProvider()); List<Timestamp> listOfTimeStamp = new ArrayList<Timestamp>(); CMSSignedData cmsSignedData = new CMSSignedData(signature); SignerInformationStore signers = cmsSignedData.getSignerInfos(); Iterator<?> it = signers.getSigners().iterator(); while (it.hasNext()) { SignerInformation signer = (SignerInformation) it.next(); AttributeTable unsignedAttributes = signer .getUnsignedAttributes(); Attribute attributeTimeStamp = unsignedAttributes .get(new ASN1ObjectIdentifier( PKCSObjectIdentifiers.id_aa_signatureTimeStampToken .getId())); if (attributeTimeStamp != null) { TimeStampOperator timeStampOperator = new TimeStampOperator(); byte[] varTimeStamp = attributeTimeStamp.getAttrValues() .getObjectAt(0).toASN1Primitive().getEncoded(); TimeStampToken timeStampToken = new TimeStampToken( new CMSSignedData(varTimeStamp)); Timestamp timeStampSigner = new Timestamp(timeStampToken); timeStampOperator.validate(signer.getSignature(), varTimeStamp, null); listOfTimeStamp.add(timeStampSigner); } } return listOfTimeStamp; } catch (CertificateCoreException | IOException | TSPException | CMSException e) { throw new SignerException(e); } }