Example usage for org.bouncycastle.asn1 DERSet getEncoded

List of usage examples for org.bouncycastle.asn1 DERSet getEncoded

Introduction

In this page you can find the example usage for org.bouncycastle.asn1 DERSet getEncoded.

Prototype

public byte[] getEncoded() throws IOException 

Source Link

Document

Return the default BER or DER encoding for this object.

Usage

From source file:eu.europa.esig.dss.cades.signature.CAdESLevelBExternalSignatureTest.java

License:Open Source License

private ExternalSignatureResult simulateExternalSignature(ToBeSigned toBeSigned) {
    ExternalSignatureResult externalSignatureResult = new ExternalSignatureResult();

    // Get hold of signature certificate.
    CertificateToken signingCertificate = getSigningCert();
    externalSignatureResult.setSigningCertificate(signingCertificate);

    DigestAlgorithm digestAlgo = signatureParameters.getDigestAlgorithm();

    // Add the signing-certificate/signing-certificate-v2 attribute to DER encoded SignedAttributes.
    try (ASN1InputStream asn1InputStream = new ASN1InputStream(toBeSigned.getBytes())) {
        DLSet dlSet = (DLSet) asn1InputStream.readObject();
        AttributeTable signedAttribute = new AttributeTable(dlSet);
        ASN1EncodableVector signedAttributeEncodableVector = signedAttribute.toASN1EncodableVector();

        CMSUtils.addSigningCertificateAttribute(signedAttributeEncodableVector, digestAlgo, signingCertificate);

        DERSet signedAttributesData = new DERSet(signedAttributeEncodableVector);

        // Update toBeSigned
        toBeSigned.setBytes(signedAttributesData.getEncoded());
        externalSignatureResult.setSignedData(toBeSigned.getBytes());
    } catch (Exception e) {
        LOG.error("Error while simulating external CAdES signature", e);
    }// www  .  ja v a  2  s .  c  o m

    SignatureValue signatureValue = getToken().sign(toBeSigned, getSignatureParameters().getDigestAlgorithm(),
            getSignatureParameters().getMaskGenerationFunction(), getPrivateKeyEntry());
    externalSignatureResult.setSignatureValue(signatureValue);

    return externalSignatureResult;
}

From source file:eu.europa.esig.dss.pades.signature.PAdESLevelBExternalSignatureTest.java

License:Open Source License

private ExternalSignatureResult simulateExternalSignature(ToBeSigned toBeSigned) {
    ExternalSignatureResult externalSignatureResult = new ExternalSignatureResult();

    // Get hold of signature certificate.
    CertificateToken signingCertificate = getSigningCert();
    externalSignatureResult.setSigningCertificate(signingCertificate);

    DigestAlgorithm digestAlgo = signatureParameters.getDigestAlgorithm();

    // Add the signing-certificate/signing-certificate-v2 attribute to DER encoded SignedAttributes.
    try (ASN1InputStream asn1InputStream = new ASN1InputStream(toBeSigned.getBytes())) {
        DLSet dlSet = (DLSet) asn1InputStream.readObject();
        AttributeTable signedAttribute = new AttributeTable(dlSet);
        ASN1EncodableVector signedAttributeEncodableVector = signedAttribute.toASN1EncodableVector();

        CMSUtils.addSigningCertificateAttribute(signedAttributeEncodableVector, digestAlgo, signingCertificate);

        DERSet signedAttributesData = new DERSet(signedAttributeEncodableVector);

        // Update toBeSigned
        toBeSigned.setBytes(signedAttributesData.getEncoded());
        externalSignatureResult.setSignedData(toBeSigned.getBytes());
    } catch (Exception e) {
        LOG.error("Error while simulating external PAdES signature", e);
    }//from ww w  . ja  v  a2  s . c om

    SignatureValue signatureValue = getToken().sign(toBeSigned, digestAlgo,
            getSignatureParameters().getMaskGenerationFunction(), getPrivateKeyEntry());
    externalSignatureResult.setSignatureValue(signatureValue);

    return externalSignatureResult;
}

From source file:org.cesecore.certificates.certificate.certextensions.BasicCertificateExtensionTest.java

License:Open Source License

@Test
public void test12DERObjectExtension() throws Exception {
    Properties props = new Properties();
    props.put("id1.property.encoding", "DEROBJECT");
    ASN1EncodableVector vec = new ASN1EncodableVector();
    vec.add(new DERPrintableString("foo1"));
    vec.add(new DERPrintableString("foo2"));
    vec.add(new DERPrintableString("foo3"));
    DERSet set = new DERSet(vec);
    String str = new String(Hex.encode(set.getEncoded()));
    props.put("id1.property.value", str);

    BasicCertificateExtension baseExt = new BasicCertificateExtension();
    baseExt.init(1, "1.2.3", false, props);

    ASN1Encodable value = getObject(baseExt.getValueEncoded(null, null, null, null, null, null));
    assertTrue(value.getClass().toString(), value instanceof DLSet);
    DLSet set1 = (DLSet) value;/*w ww. j a v a2 s.  c om*/
    assertEquals(3, set1.size());

    props = new Properties();
    props.put("id1.property.encoding", "DEROBJECT");
    props.put("id1.property.value", "This is not an asn1 hex encoded object");
    baseExt = new BasicCertificateExtension();
    baseExt.init(1, "1.2.3", false, props);
    try {
        value = getObject(baseExt.getValueEncoded(null, null, null, null, null, null));
        assertTrue("Should throw", false);
    } catch (CertificateExtensionException e) {
        // NOPMD
    }
}