• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java SignedData类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.bouncycastle.asn1.cms.SignedData的典型用法代码示例。如果您正苦于以下问题:Java SignedData类的具体用法?Java SignedData怎么用?Java SignedData使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



SignedData类属于org.bouncycastle.asn1.cms包,在下文中一共展示了SignedData类的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: main

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
/**
 * @param args
 * @throws Exception 
 */
public static void main(String[] args) throws Exception {
	byte[] efcsBytes = readBinaryFile("/home/tsenger/Desktop/EFCardSecurity.bin");
	ASN1Sequence asnSeq = (ASN1Sequence) ASN1Sequence.fromByteArray(efcsBytes);
	ContentInfo contentInfo = ContentInfo.getInstance(asnSeq);
	System.out.println(contentInfo.getContentType());
	DERSequence derSeq = (DERSequence) contentInfo.getContent();
	System.out.println(HexString.bufferToHex(derSeq.getEncoded(null)));
	SignedData signedData = SignedData.getInstance(derSeq);
	System.out.println("CMSVersion: "+signedData.getVersion().getValue().intValue());
	ContentInfo contentInfo2 = signedData.getEncapContentInfo();
	System.out.println(contentInfo2.getContentType());
	DEROctetString octString = (DEROctetString) contentInfo2.getContent();
	System.out.println("OctetString:\n"+HexString.bufferToHex(octString.getEncoded(null)));
	System.out.println("OctetString:\n"+HexString.bufferToHex(octString.getOctets()));
	
	SecurityInfos si = new SecurityInfos();
	si.decode(octString.getOctets());
	System.out.println(si);
	
	byte[] parameter = si.getChipAuthenticationPublicKeyInfoList().get(0).getPublicKey().getPublicKey();
	System.out.println(HexString.bufferToHex(parameter));
	System.out.println("Key Referenz: "+si.getChipAuthenticationPublicKeyInfoList().get(0).getKeyId());
	System.out.println("id_CA OID: "+si.getChipAuthenticationPublicKeyInfoList().get(0).getPublicKey().getAlgorithm().getAlgorithm());

}
 
开发者ID:tsenger,项目名称:animamea,代码行数:30,代码来源:CardSecurityParser.java


示例2: decodeEFCardSecurity

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
private SecurityInfos decodeEFCardSecurity(byte[] data)
		throws IOException, CertificateException, CMSException, OperatorCreationException {
	
	ASN1Sequence asnSeq = (ASN1Sequence) ASN1Sequence.fromByteArray(data);
	ContentInfo contentInfo = ContentInfo.getInstance(asnSeq);
	DERSequence derSeq = (DERSequence) contentInfo.getContent();

	SignedData cardSecurity = SignedData.getInstance(derSeq);

	// Get SecurityInfos
	ContentInfo encapContentInfo = cardSecurity.getEncapContentInfo();
	DEROctetString octString = (DEROctetString) encapContentInfo.getContent();
	SecurityInfos si = new SecurityInfos();
	si.decode(octString.getOctets());

	return si;
}
 
开发者ID:tsenger,项目名称:animamea,代码行数:18,代码来源:Operator.java


示例3: getCRLsHashIndex

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
/**
 * The field crlsHashIndex is a sequence of octet strings. Each one contains the hash value of one instance of
 * RevocationInfoChoice within crls field of the root SignedData. A hash value for every instance of
 * RevocationInfoChoice, as present at the time when the corresponding archive time-stamp is requested, shall be
 * included in crlsHashIndex. No other hash values shall be included in this field.
 *
 * @return
 * @throws eu.europa.esig.dss.DSSException
 */
@SuppressWarnings("unchecked")
private ASN1Sequence getCRLsHashIndex() throws DSSException {

	final ASN1EncodableVector crlsHashIndex = new ASN1EncodableVector();

	final SignedData signedData = SignedData.getInstance(cadesSignature.getCmsSignedData().toASN1Structure().getContent());
	final ASN1Set signedDataCRLs = signedData.getCRLs();
	if (signedDataCRLs != null) {
		final Enumeration<ASN1Encodable> crLs = signedDataCRLs.getObjects();
		if (crLs != null) {
			while (crLs.hasMoreElements()) {
				final ASN1Encodable asn1Encodable = crLs.nextElement();
				digestAndAddToList(crlsHashIndex, DSSASN1Utils.getDEREncoded(asn1Encodable));
			}
		}
	}

	return new DERSequence(crlsHashIndex);
}
 
开发者ID:esig,项目名称:dss,代码行数:29,代码来源:CadesLevelBaselineLTATimestampExtractor.java


示例4: init

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
@Before
public void init() throws Exception {
	DSSDocument signedDocument = getSignedDocument();

	ASN1InputStream asn1sInput = new ASN1InputStream(signedDocument.openStream());
	ASN1Sequence asn1Seq = (ASN1Sequence) asn1sInput.readObject();
	assertEquals(2, asn1Seq.size());
	ASN1ObjectIdentifier oid = ASN1ObjectIdentifier.getInstance(asn1Seq.getObjectAt(0));
	assertEquals(PKCSObjectIdentifiers.signedData, oid);

	ASN1TaggedObject taggedObj = DERTaggedObject.getInstance(asn1Seq.getObjectAt(1));
	signedData = SignedData.getInstance(taggedObj.getObject());

	ASN1Set signerInfosAsn1 = signedData.getSignerInfos();
	assertEquals(1, signerInfosAsn1.size());

	signerInfo = SignerInfo.getInstance(ASN1Sequence.getInstance(signerInfosAsn1.getObjectAt(0)));

	Utils.closeQuietly(asn1sInput);
}
 
开发者ID:esig,项目名称:dss,代码行数:21,代码来源:AbstractRequirementChecks.java


示例5: getCert

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
private SignedData getCert(X509Ca ca, BigInteger serialNumber)
        throws FailInfoException, OperationException {
    X509Certificate cert;
    try {
        cert = ca.getCertificate(serialNumber);
    } catch (CertificateException ex) {
        final String message = "could not get certificate for CA '" + caIdent
                + "' and serialNumber=" + LogUtil.formatCsn(serialNumber) + ")";
        LogUtil.error(LOG, ex, message);
        throw new OperationException(ErrorCode.SYSTEM_FAILURE, ex);
    }
    if (cert == null) {
        throw FailInfoException.BAD_CERTID;
    }
    return buildSignedData(cert);
}
 
开发者ID:xipki,项目名称:xipki,代码行数:17,代码来源:ScepImpl.java


示例6: pollCert

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
private SignedData pollCert(X509Ca ca, X500Name subject, TransactionId tid)
        throws FailInfoException, OperationException {
    byte[] tidBytes = getTransactionIdBytes(tid.id());
    List<X509Certificate> certs = ca.getCertificate(subject, tidBytes);
    if (CollectionUtil.isEmpty(certs)) {
        certs = ca.getCertificate(subject, null);
    }

    if (CollectionUtil.isEmpty(certs)) {
        throw FailInfoException.BAD_CERTID;
    }

    if (certs.size() > 1) {
        LOG.warn("given certId (subject: {}) and transactionId {} match multiple certificates",
            X509Util.getRfc4519Name(subject), tid.id());
        throw FailInfoException.BAD_CERTID;
    }

    return buildSignedData(certs.get(0));
}
 
开发者ID:xipki,项目名称:xipki,代码行数:21,代码来源:ScepImpl.java


示例7: buildSignedData

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
private SignedData buildSignedData(X509Certificate cert) throws OperationException {
    CMSSignedDataGenerator cmsSignedDataGen = new CMSSignedDataGenerator();
    try {
        X509CertificateHolder certHolder = new X509CertificateHolder(cert.getEncoded());
        cmsSignedDataGen.addCertificate(certHolder);
        if (control.includeCaCert()) {
            refreshCa();
            cmsSignedDataGen.addCertificate(caCert.certHolder());
        }
        CMSSignedData signedData = cmsSignedDataGen.generate(new CMSAbsentContent());
        return SignedData.getInstance(signedData.toASN1Structure().getContent());
    } catch (CMSException | IOException | CertificateEncodingException ex) {
        LogUtil.error(LOG, ex);
        throw new OperationException(ErrorCode.SYSTEM_FAILURE, ex);
    }
}
 
开发者ID:xipki,项目名称:xipki,代码行数:17,代码来源:ScepImpl.java


示例8: getCrl

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
private SignedData getCrl(X509Ca ca, BigInteger serialNumber)
        throws FailInfoException, OperationException {
    if (!control.supportGetCrl()) {
        throw FailInfoException.BAD_REQUEST;
    }

    CertificateList crl = ca.getBcCurrentCrl();
    if (crl == null) {
        throw FailInfoException.BAD_REQUEST;
    }
    CMSSignedDataGenerator cmsSignedDataGen = new CMSSignedDataGenerator();
    cmsSignedDataGen.addCRL(new X509CRLHolder(crl));

    CMSSignedData signedData;
    try {
        signedData = cmsSignedDataGen.generate(new CMSAbsentContent());
    } catch (CMSException ex) {
        LogUtil.error(LOG, ex, "could not generate CMSSignedData");
        throw new OperationException(ErrorCode.SYSTEM_FAILURE, ex);
    }
    return SignedData.getInstance(signedData.toASN1Structure().getContent());
}
 
开发者ID:xipki,项目名称:xipki,代码行数:23,代码来源:ScepImpl.java


示例9: getVerifiedCRLsHashIndex

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
/**
 * The field crlsHashIndex is a sequence of octet strings. Each one contains the hash value of one instance of
 * RevocationInfoChoice within crls field of the root SignedData. A hash value for every instance of
 * RevocationInfoChoice, as present at the time when the corresponding archive time-stamp is requested, shall be
 * included in crlsHashIndex. No other hash values shall be included in this field.
 *
 * @return
 * @throws eu.europa.esig.dss.DSSException
 */
@SuppressWarnings("unchecked")
private ASN1Sequence getVerifiedCRLsHashIndex(TimestampToken timestampToken) throws DSSException {

	final ASN1Sequence crlHashes = getCRLHashIndex(timestampToken);
	final List<DEROctetString> crlHashesList = new ArrayList<DEROctetString>();
	if (crlHashes != null) {
		crlHashesList.addAll(Collections.list(crlHashes.getObjects()));
	}

	final SignedData signedData = SignedData.getInstance(cadesSignature.getCmsSignedData().toASN1Structure().getContent());
	final ASN1Set signedDataCRLs = signedData.getCRLs();
	if (signedDataCRLs != null) {
		final Enumeration<ASN1Encodable> crLs = signedDataCRLs.getObjects();
		if (crLs != null) {
			while (crLs.hasMoreElements()) {
				final ASN1Encodable asn1Encodable = crLs.nextElement();
				handleRevocationEncoded(crlHashesList, DSSASN1Utils.getDEREncoded(asn1Encodable));
			}
		}
	}

	if (!crlHashesList.isEmpty()) {
		LOG.error("{} attribute hash in CRL Hashes have not been found in document attributes: {}", crlHashesList.size(), crlHashesList);
		// return a empty DERSequence to screw up the hash
		return new DERSequence();
	}

	return crlHashes;
}
 
开发者ID:esig,项目名称:dss,代码行数:39,代码来源:CadesLevelBaselineLTATimestampExtractor.java


示例10: extractCertificates

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
private List<X509Certificate> extractCertificates(SignedData signedData) throws Exception {
	ASN1Set certificates = signedData.getCertificates();
	logger.info("CERTIFICATES (" + certificates.size() + ") : " + certificates);

	List<X509Certificate> foundCertificates = new ArrayList<X509Certificate>();
	for (int i = 0; i < certificates.size(); i++) {
		ASN1Sequence seqCertif = ASN1Sequence.getInstance(certificates.getObjectAt(i));

		X509CertificateHolder certificateHolder = new X509CertificateHolder(seqCertif.getEncoded());
		CertificateToken certificate = DSSASN1Utils.getCertificate(certificateHolder);

		foundCertificates.add(certificate.getCertificate());
	}
	return foundCertificates;
}
 
开发者ID:esig,项目名称:dss,代码行数:16,代码来源:PAdESLevelBTest.java


示例11: replaceSigners

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
/**
 * Replace the SignerInformation store associated with this
 * CMSSignedData object with the new one passed in. You would
 * probably only want to do this if you wanted to change the unsigned 
 * attributes associated with a signer, or perhaps delete one.
 * 
 * @param signedData the signed data object to be used as a base.
 * @param signerInformationStore the new signer information store to use.
 * @return a new signed data object.
 */
public static CMSSignedData replaceSigners(
    CMSSignedData           signedData,
    SignerInformationStore  signerInformationStore)
{
    //
    // copy
    //
    CMSSignedData   cms = new CMSSignedData(signedData);
    
    //
    // replace the store
    //
    cms.signerInfoStore = signerInformationStore;

    //
    // replace the signers in the SignedData object
    //
    ASN1EncodableVector digestAlgs = new ASN1EncodableVector();
    ASN1EncodableVector vec = new ASN1EncodableVector();
    
    Iterator    it = signerInformationStore.getSigners().iterator();
    while (it.hasNext())
    {
        SignerInformation signer = (SignerInformation)it.next();
        digestAlgs.add(CMSSignedHelper.INSTANCE.fixAlgID(signer.getDigestAlgorithmID()));
        vec.add(signer.toASN1Structure());
    }

    ASN1Set             digests = new DERSet(digestAlgs);
    ASN1Set             signers = new DERSet(vec);
    ASN1Sequence        sD = (ASN1Sequence)signedData.signedData.toASN1Primitive();

    vec = new ASN1EncodableVector();
    
    //
    // signers are the last item in the sequence.
    //
    vec.add(sD.getObjectAt(0)); // version
    vec.add(digests);

    for (int i = 2; i != sD.size() - 1; i++)
    {
        vec.add(sD.getObjectAt(i));
    }
    
    vec.add(signers);
    
    cms.signedData = SignedData.getInstance(new BERSequence(vec));
    
    //
    // replace the contentInfo with the new one
    //
    cms.contentInfo = new ContentInfo(cms.contentInfo.getContentType(), cms.signedData);
    
    return cms;
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:67,代码来源:CMSSignedData.java


示例12: testContentTimeStamp

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
@Test
public void testContentTimeStamp() throws IOException {
	File file = new File("src/test/resources/plugtest/cades/CAdES-BES/Sample_Set_11/Signature-C-BES-4.p7m");

	FileInputStream fis = new FileInputStream(file);
	ASN1InputStream asn1sInput = new ASN1InputStream(Utils.toByteArray(fis));
	ASN1Sequence asn1Seq = (ASN1Sequence) asn1sInput.readObject();

	ASN1TaggedObject taggedObj = DERTaggedObject.getInstance(asn1Seq.getObjectAt(1));
	ASN1Primitive object = taggedObj.getObject();
	SignedData signedData = SignedData.getInstance(object);

	ASN1Set signerInfosAsn1 = signedData.getSignerInfos();
	ASN1Sequence seqSignedInfo = ASN1Sequence.getInstance(signerInfosAsn1.getObjectAt(0));

	SignerInfo signedInfo = SignerInfo.getInstance(seqSignedInfo);
	ASN1Set authenticatedAttributes = signedInfo.getAuthenticatedAttributes();

	boolean found = false;
	for (int i = 0; i < authenticatedAttributes.size(); i++) {
		ASN1Sequence authAttrSeq = ASN1Sequence.getInstance(authenticatedAttributes.getObjectAt(i));
		ASN1ObjectIdentifier attrOid = ASN1ObjectIdentifier.getInstance(authAttrSeq.getObjectAt(0));
		if (PKCSObjectIdentifiers.id_aa_ets_contentTimestamp.equals(attrOid)) {
			found = true;
		}
	}
	assertTrue(found);

	SignedDocumentValidator validator = SignedDocumentValidator.fromDocument(new FileDocument(file));
	validator.setCertificateVerifier(new CommonCertificateVerifier());

	Reports reports = validator.validateDocument();
	// reports.print();

	DiagnosticData diagnosticData = reports.getDiagnosticData();
	List<String> timestampIdList = diagnosticData.getTimestampIdList(diagnosticData.getFirstSignatureId());
	assertTrue(Utils.isCollectionNotEmpty(timestampIdList));

	boolean foundContentTimestamp = false;
	for (String timestampId : timestampIdList) {
		String timestampType = diagnosticData.getTimestampType(timestampId);
		if (TimestampType.CONTENT_TIMESTAMP.name().equals(timestampType)) {
			foundContentTimestamp = true;
		}
	}
	assertTrue(foundContentTimestamp);

	Utils.closeQuietly(asn1sInput);
	Utils.closeQuietly(fis);
}
 
开发者ID:esig,项目名称:dss,代码行数:51,代码来源:CAdESWithContentTimestampTest.java


示例13: replaceSigners

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
/**
 * Replace the signerinformation store associated with this
 * CMSSignedData object with the new one passed in. You would
 * probably only want to do this if you wanted to change the unsigned 
 * attributes associated with a signer, or perhaps delete one.
 * 
 * @param signedData the signed data object to be used as a base.
 * @param signerInformationStore the new signer information store to use.
 * @return a new signed data object.
 */
public static CMSSignedData replaceSigners(
    CMSSignedData           signedData,
    SignerInformationStore  signerInformationStore)
{
    //
    // copy
    //
    CMSSignedData   cms = new CMSSignedData(signedData);
    
    //
    // replace the store
    //
    cms.signerInfoStore = signerInformationStore;

    //
    // replace the signers in the SignedData object
    //
    ASN1EncodableVector digestAlgs = new ASN1EncodableVector();
    ASN1EncodableVector vec = new ASN1EncodableVector();
    
    Iterator    it = signerInformationStore.getSigners().iterator();
    while (it.hasNext())
    {
        SignerInformation signer = (SignerInformation)it.next();
        digestAlgs.add(CMSSignedHelper.INSTANCE.fixAlgID(signer.getDigestAlgorithmID()));
        vec.add(signer.toASN1Structure());
    }

    ASN1Set             digests = new DERSet(digestAlgs);
    ASN1Set             signers = new DERSet(vec);
    ASN1Sequence        sD = (ASN1Sequence)signedData.signedData.toASN1Primitive();

    vec = new ASN1EncodableVector();
    
    //
    // signers are the last item in the sequence.
    //
    vec.add(sD.getObjectAt(0)); // version
    vec.add(digests);

    for (int i = 2; i != sD.size() - 1; i++)
    {
        vec.add(sD.getObjectAt(i));
    }
    
    vec.add(signers);
    
    cms.signedData = SignedData.getInstance(new BERSequence(vec));
    
    //
    // replace the contentInfo with the new one
    //
    cms.contentInfo = new ContentInfo(cms.contentInfo.getContentType(), cms.signedData);
    
    return cms;
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:67,代码来源:CMSSignedData.java


示例14: DVCSRequest

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
/**
 * Constructs DVCRequest from CMS SignedData object.
 *
 * @param signedData the CMS SignedData object containing the request
 * @throws DVCSConstructionException
 */
public DVCSRequest(CMSSignedData signedData)
    throws DVCSConstructionException
{
    this(SignedData.getInstance(signedData.toASN1Structure().getContent()).getEncapContentInfo());
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:12,代码来源:DVCSRequest.java


示例15: DVCSResponse

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
/**
 * Constructs DVCRequest from CMS SignedData object.
 *
 * @param signedData the CMS SignedData object containing the request
 * @throws org.bouncycastle.dvcs.DVCSConstructionException
 */
public DVCSResponse(CMSSignedData signedData)
    throws DVCSConstructionException
{
    this(SignedData.getInstance(signedData.toASN1Structure().getContent()).getEncapContentInfo());
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:12,代码来源:DVCSResponse.java


示例16: getEncodedContentType

import org.bouncycastle.asn1.cms.SignedData; //导入依赖的package包/类
/**
 * 1) The SignedData.encapContentInfo.eContentType.
 *
 * @param cmsSignedData
 * @return cmsSignedData.getSignedContentTypeOID() as DER encoded
 */
private byte[] getEncodedContentType(final CMSSignedData cmsSignedData) {
	final ContentInfo contentInfo = cmsSignedData.toASN1Structure();
	final SignedData signedData = SignedData.getInstance(contentInfo.getContent());
	return DSSASN1Utils.getDEREncoded(signedData.getEncapContentInfo().getContentType());
}
 
开发者ID:esig,项目名称:dss,代码行数:12,代码来源:CadesLevelBaselineLTATimestampExtractor.java



注:本文中的org.bouncycastle.asn1.cms.SignedData类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java IEndpointSnitch类代码示例发布时间:2022-05-22
下一篇:
Java Glyph类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap