EldoS | Feel safer!

Software components for data protection, secure storage and transfer

What versions of XAdES are supported?

XAdES versions 1.1.1, 1.2.2, 1.3.2 and 1.4.1 (1.4.2) are supported.
For XAdES (XAdES-BES, XAdES-EPES) and XAdES-T forms there is a simple interface available via TElXAdESSigner and TElXMLVerifier classes.
The TElXAdESSigner and TElXMLVerifier classes have a QualifyingProperties property that fully implements QualifyingProperties element from XAdES specification. All other XAdES forms are controlled through this QualifyingProperties property.

Creating a countersignature and all timestamping could be done using ElXAdESProcessor methods. For example:

ElXAdESSigner.AddSigAndRefsTimestamp (XAdES-X), ElXAdESVerifier.AddArchiveTimestamp (XAdES-A)

But, some properties such as Id don't have corresponding method/property in TElXAdESSigner and can be set only via QualifyingProperties property.

Next, if you need to set AttributeCertificateRefs (XAdES-C form), you will need to set it directly using
ElXAdESSigner.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties.AttributeCertificateRefs property.

Example of how to fill RevocationValues and CompleteRevocationRefs with OCSP response (C# notation):

ElXAdESSigner.XAdESForm = SBXMLAdES.Unit. XAdES_X_L;
ElXAdESSigner.Generate(); // generate QualifyingProperties structure
TElOCSPResponse OCSPResponse; // for example we have OCSP response already
int Size = 0;
byte[] OCSPResponseBuf;
OCSPResponse.Save(ref OCSPResponseBuf, 0, ref Size);
OCSPResponseBuf = new Byte
if (OCSPResponse.Save(ref OCSPResponseBuf, 0, ref Size))
  SBUtils.Unit.SetLength(OCSPResponseBuf, Size);
  TElXMLEncapsulatedPKIData PKIData = new TElXMLEncapsulatedPKIData(XAdESSigner.XAdESVersion);
  PKIData.Encoding = SBXMLAdES.Unit.xemDER;
  PKIData.Data = BufPKI;                

  TElXMLOCSPRef OCSPRef = new TElXMLOCSPRef(XAdESSigner.XAdESVersion);
  if (FResponderID.Name.Count > 0)
  OCSPRef.OCSPIdentifier.ResponderID = SBXMLSec.Unit.FormatRDN(OCSPResponse.ResponderID.Name);
  OCSPIdentifier.ResponderIDType = SBXMLAdES.Unit.xrtByName;
  if (FResponderID.FSHA1KeyHash.Length() > 0)
  OCSPRef.DigestAlgAndValue.DigestMethod = xmlDigestMethodSHA1;
  OCSPRef.DigestAlgAndValue.DigestValue = OCSPResponse.ResponderID.SHA1KeyHash;
  OCSPIdentifier.ResponderIDType = SBXMLAdES.Unit.xrtByKey
  OCSPRef.OCSPIdentifier.ProducedAtUTC = OCSPResponse.ProducedAt;

Return to the list


Back to top

As of July 15, 2016 EldoS business operates as a division of /n software, inc. For more information, please read the announcement.

Got it!