Package org.bouncycastle.cms

Examples of org.bouncycastle.cms.SignerInformation


                //
                CMSSignedData s = new CMSSignedData(retMsg);
                SignerInformationStore signers = s.getSignerInfos();
                Collection<?> col = signers.getSigners();
                Iterator<?> iter = col.iterator();
                SignerInformation signerInfo = (SignerInformation)iter.next();
                // Get authenticated attributes
                AttributeTable tab = signerInfo.getSignedAttributes();       
                Attribute attr = tab.get(new DERObjectIdentifier(ScepRequestMessage.id_pkiStatus));
                ASN1Set values = attr.getAttrValues();
                DERString str = DERPrintableString.getInstance((values.getObjectAt(0)));
                String responsestatus =  str.getString();
                if (extectedResponseStatus.getValue().equals(responsestatus)) {
View Full Code Here


        // The signer, i.e. the CA, check it's the right CA
        SignerInformationStore signers = s.getSignerInfos();
        Collection<SignerInformation> col = signers.getSigners();
        assertTrue(col.size() > 0);
        Iterator<SignerInformation> iter = col.iterator();
        SignerInformation signerInfo = iter.next();
        // Check that the message is signed with the correct digest alg
        assertEquals(signerInfo.getDigestAlgOID(), digestOid);
        SignerId sinfo = signerInfo.getSID();
        // Check that the signer is the expected CA
        assertEquals(CertTools.stringToBCDNString(cacert.getIssuerDN().getName()), CertTools.stringToBCDNString(sinfo.getIssuerAsString()));
        // Verify the signature
        boolean ret = signerInfo.verify(cacert.getPublicKey(), "BC");
        assertTrue(ret);
        // Get authenticated attributes
        AttributeTable tab = signerInfo.getSignedAttributes();
        // --Fail info
        Attribute attr = tab.get(new DERObjectIdentifier(ScepRequestMessage.id_failInfo));
        // No failInfo on this success message
        assertNull(attr);
        // --Message type
View Full Code Here

        // The signer, i.e. the CA, check it's the right CA
        SignerInformationStore signers = s.getSignerInfos();
        Collection col = signers.getSigners();
        assertTrue(col.size() > 0);
        Iterator iter = col.iterator();
        SignerInformation signerInfo = (SignerInformation)iter.next();
        SignerId sinfo = signerInfo.getSID();
        // Check that the signer is the expected CA
        assertEquals(CertTools.stringToBCDNString(racert.getIssuerDN().getName()), CertTools.stringToBCDNString(sinfo.getIssuerAsString()));
        // Verify the signature
        boolean ret = signerInfo.verify(racert.getPublicKey(), "BC");
        assertTrue(ret);
        // Get authenticated attributes
        AttributeTable tab = signerInfo.getSignedAttributes();       
        // --Fail info
        Attribute attr = tab.get(new DERObjectIdentifier(ScepRequestMessage.id_failInfo));
        // --Message type
        attr = tab.get(new DERObjectIdentifier(ScepRequestMessage.id_messageType));
        assertNotNull(attr);
View Full Code Here

        // The signer, i.e. the CA, check it's the right CA
        SignerInformationStore signers = s.getSignerInfos();
        Collection col = signers.getSigners();
        assertTrue(col.size() > 0);
        Iterator iter = col.iterator();
        SignerInformation signerInfo = (SignerInformation)iter.next();
        // Check that the message is signed with the correct digest alg
        assertEquals(signerInfo.getDigestAlgOID(), digestOid);
        SignerId sinfo = signerInfo.getSID();
        // Check that the signer is the expected CA
        assertEquals(CertTools.stringToBCDNString(racert.getIssuerDN().getName()), CertTools.stringToBCDNString(sinfo.getIssuerAsString()));
        // Verify the signature
        boolean ret = signerInfo.verify(racert.getPublicKey(), "BC");
        assertTrue(ret);
        // Get authenticated attributes
        AttributeTable tab = signerInfo.getSignedAttributes();       
        // --Fail info
        Attribute attr = tab.get(new DERObjectIdentifier(ScepRequestMessage.id_failInfo));
        // No failInfo on this success message
        if(expectedResponseStatus == ResponseStatus.SUCCESS){
          assertNull(attr);
View Full Code Here

        sc.drain();
        final Iterator  it = sp.getSignerInfos().getSigners().iterator();
        if ( !it.hasNext() ) {
            return null;
        }
        final SignerInformation signerInfo = (SignerInformation)it.next();
        final Attribute attribute = (Attribute)signerInfo.getSignedAttributes().getAll(CMSAttributes.signingTime).get(0);
        final Date date = Time.getInstance(attribute.getAttrValues().getObjectAt(0).getDERObject()).getDate();
        final SignerId id = signerInfo.getSID();
        boolean result = false;
        try {
            result = signerInfo.verify(cert, "BC");
        } catch ( Throwable t ) {
            log.debug("Exception when verifying", t);
        }
        return new VerifyResult(date, result, id);           
    }
View Full Code Here

            SignerInformationStore signers = s.getSignerInfos();
            Iterator<?> signerIt = signers.getSigners().iterator();

            if (signerIt.hasNext()) {

                SignerInformation signer = (SignerInformation) signerIt.next();
                Iterator<?> certIt = certs.getCertificates(
                        (new JcaX509CertSelectorConverter()).getCertSelector(signer.getSID())).iterator();

                if (certIt.hasNext()) {
                    // the signer certificate
                    X509Certificate cert = (X509Certificate) certIt.next();

                    if (testElement.isVerifySignature()) {

                        if (!signer.verify(cert.getPublicKey(), "BC")) { // $NON-NLS-1$
                            res.setFailure(true);
                            res.setFailureMessage("Signature is invalid");
                        }
                    }
View Full Code Here

    Collection c = signers.getSigners();
    Iterator it = c.iterator();

    while(it.hasNext())
    {
      SignerInformation signer = (SignerInformation) it.next();
      Collection certCollection = certStore.getMatches(signer.getSID());

      Iterator certIt = certCollection.iterator();
      X509CertificateHolder cert = (X509CertificateHolder) certIt.next();

      if(signer.verify(new JcaSimpleSignerInfoVerifierBuilder().setProvider("BC").build(cert)))
      {
        verified = true;
      }

      // salva il certificato se non ha già fatto
View Full Code Here

            SignerInformationStore signers = s.getSignerInfos();
            Iterator<?> signerIt = signers.getSigners().iterator();

            if (signerIt.hasNext()) {

                SignerInformation signer = (SignerInformation) signerIt.next();
                Iterator<?> certIt = certs.getCertificates(signer.getSID()).iterator();

                if (certIt.hasNext()) {
                    // the signer certificate
                    X509Certificate cert = (X509Certificate) certIt.next();

                    if (testElement.isVerifySignature()) {

                        if (!signer.verify(cert.getPublicKey(), "BC")) { // $NON-NLS-1$
                            res.setFailure(true);
                            res.setFailureMessage("Signature is invalid");
                        }
                    }
View Full Code Here

  // The signed content is always an octet string
  CMSProcessable signedContent = pkiMessage.getSignedContent();

  SignerInformationStore signerStore = pkiMessage.getSignerInfos();
  SignerInformation signerInfo = signerStore.get(new JcaSignerId(signer));
  if (signerInfo == null) {
      throw new MessageDecodingException("Could not for signerInfo for "
        + signer.getIssuerDN());
  }

  LOGGER.debug("pkiMessage digest algorithm: {}",
    signerInfo.getDigestAlgorithmID().getAlgorithm());
  LOGGER.debug("pkiMessage encryption algorithm: {}",
    signerInfo.getEncryptionAlgOID());

  Store store = pkiMessage.getCertificates();
  Collection<?> certColl;
  try {
      certColl = store.getMatches(signerInfo.getSID());
  } catch (StoreException e) {
      throw new MessageDecodingException(e);
  }
  if (certColl.size() > 0) {
      X509CertificateHolder cert = (X509CertificateHolder) certColl
        .iterator().next();
      LOGGER.debug(
        "Verifying pkiMessage using key belonging to [issuer={}; serial={}]",
        cert.getIssuer(), cert.getSerialNumber());
      SignerInformationVerifier verifier;
      try {
    verifier = new JcaSimpleSignerInfoVerifierBuilder().build(cert);
    signerInfo.verify(verifier);

    LOGGER.debug("pkiMessage verified.");
      } catch (Exception e) {
    throw new MessageDecodingException(e);
      }
  } else {
      LOGGER.warn("Unable to verify message because the signedData contained no certificates.");
  }

  Hashtable<DERObjectIdentifier, Attribute> attrTable = signerInfo
    .getSignedAttributes().toHashtable();

  if (LOGGER.isDebugEnabled()) {
      LOGGER.debug("pkiMessage has {} signed attributes:", signerInfo
        .getSignedAttributes().size());
      for (DERObjectIdentifier oid : attrTable.keySet()) {
    LOGGER.debug("  {}: {}", oid.getId(), attrTable.get(oid)
      .getAttrValues());
      }
View Full Code Here

     * @return <code>true</code> if the signedData was signed by the entity,
     *         <code>false</code> otherwise.
     */
    public static boolean isSignedBy(CMSSignedData sd, X509Certificate signer) {
  SignerInformationStore store = sd.getSignerInfos();
  SignerInformation signerInfo = store.get(new JcaSignerId(signer));
  if (signerInfo == null) {
      return false;
  }
  CMSSignatureAlgorithmNameGenerator sigNameGenerator = new DefaultCMSSignatureAlgorithmNameGenerator();
  SignatureAlgorithmIdentifierFinder sigAlgorithmFinder = new DefaultSignatureAlgorithmIdentifierFinder();
  ContentVerifierProvider verifierProvider;
  try {
      verifierProvider = new JcaContentVerifierProviderBuilder()
        .build(signer);
  } catch (OperatorCreationException e) {
      throw new RuntimeException(e);
  }
  DigestCalculatorProvider digestProvider;
  try {
      digestProvider = new JcaDigestCalculatorProviderBuilder().build();
  } catch (OperatorCreationException e1) {
      throw new RuntimeException(e1);
  }
  SignerInformationVerifier verifier = new SignerInformationVerifier(
    sigNameGenerator, sigAlgorithmFinder, verifierProvider,
    digestProvider);
  try {
      return signerInfo.verify(verifier);
  } catch (CMSException e) {
      return false;
  }
    }
View Full Code Here

TOP

Related Classes of org.bouncycastle.cms.SignerInformation

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.