use of xades4j.properties.data.SignaturePolicyData in project xades4j by luisgoncalves.
the class DataGenSigPolicy method generatePropertyData.
@Override
public PropertyDataObject generatePropertyData(SignaturePolicyIdentifierProperty prop, PropertiesDataGenerationContext ctx) throws PropertyDataGenerationException {
try {
// Digest the policy document.
String digestAlgUri = this.algorithmsProvider.getDigestAlgorithmForReferenceProperties();
MessageDigest md = this.messageDigestProvider.getEngine(digestAlgUri);
byte[] policyDigest = MessageDigestUtils.digestStream(md, prop.getPolicyDocumentStream());
return new SignaturePolicyData(prop.getIdentifier(), digestAlgUri, policyDigest, prop.getLocationUrl());
} catch (IOException ex) {
throw new PropertyDataGenerationException(prop, "Cannot digest signature policy", ex);
} catch (UnsupportedAlgorithmException ex) {
throw new PropertyDataGenerationException(prop, ex.getMessage(), ex);
}
}
use of xades4j.properties.data.SignaturePolicyData in project xades4j by luisgoncalves.
the class FromXmlSignaturePolicyConverter method convertFromObjectTree.
@Override
public void convertFromObjectTree(XmlSignedSignaturePropertiesType xmlProps, QualifyingPropertiesDataCollector propertyDataCollector) throws PropertyUnmarshalException {
XmlSignaturePolicyIdentifierType xmlSigPolicy = xmlProps.getSignaturePolicyIdentifier();
if (null == xmlSigPolicy)
return;
if (xmlSigPolicy.getSignaturePolicyImplied() != null) {
propertyDataCollector.setSignaturePolicy(new SignaturePolicyData());
return;
}
XmlSignaturePolicyIdType xmlPolicyId = xmlSigPolicy.getSignaturePolicyId();
if (xmlPolicyId.getTransforms() != null)
throw new PropertyUnmarshalException("Signature policy transforms are not supported", SignaturePolicyBase.PROP_NAME);
propertyDataCollector.setSignaturePolicy(new SignaturePolicyData(FromXmlUtils.getObjectIdentifier(xmlPolicyId.getSigPolicyId()), xmlPolicyId.getSigPolicyHash().getDigestMethod().getAlgorithm(), xmlPolicyId.getSigPolicyHash().getDigestValue(), getLocationUrl(xmlPolicyId)));
}
use of xades4j.properties.data.SignaturePolicyData in project xades4j by luisgoncalves.
the class ToXmlSignaturePolicyConverter method convertIntoObjectTree.
@Override
public void convertIntoObjectTree(PropertyDataObject propData, XmlSignedPropertiesType xmlProps, Document doc) {
SignaturePolicyData sigPolicyData = (SignaturePolicyData) propData;
XmlSignaturePolicyIdentifierType xmlSigPolicy = new XmlSignaturePolicyIdentifierType();
if (null == sigPolicyData.getIdentifier()) {
xmlSigPolicy.setSignaturePolicyImplied();
} else {
xmlSigPolicy.setSignaturePolicyId(getSignaturePolicy(sigPolicyData, doc));
}
xmlProps.getSignedSignatureProperties().setSignaturePolicyIdentifier(xmlSigPolicy);
}
Aggregations