All,

When using the DOM implementation you can request which elements of the X509 
data you want to appear in the signature.

      // add x509 data
      X509Data x509data = new X509Data(document);
      x509data.add(new XMLX509SubjectName(document, certificate));
      x509data.add(new XMLX509IssuerSerial(document, certificate));

In the StAX implementation, we appear to be limited to the following

    public static final KeyIdentifier KeyIdentifier_KeyValue = new 
KeyIdentifier("KeyValue");
    public static final KeyIdentifier KeyIdentifier_KeyName = new 
KeyIdentifier("KeyName");
    public static final KeyIdentifier KeyIdentifier_IssuerSerial = new 
KeyIdentifier("IssuerSerial");
    public static final KeyIdentifier KeyIdentifier_SkiKeyIdentifier = new 
KeyIdentifier("SkiKeyIdentifier");
    public static final KeyIdentifier KeyIdentifier_X509KeyIdentifier = new 
KeyIdentifier("X509KeyIdentifier");
    public static final KeyIdentifier KeyIdentifier_X509SubjectName = new 
KeyIdentifier("X509SubjectName");
    public static final KeyIdentifier KeyIdentifier_NoKeyInfo = new 
KeyIdentifier("NoKeyInfo");
    public static final KeyIdentifier KeyIdentifier_EncryptedKey = new 
KeyIdentifier("EncryptedKey");

In the StAX implementation, I can either choose KeyIdentifier_IssuerSerial or 
KeyIdentifier_X509SubutbjectName but not both as we could with the DOM code 
fragment above.

The reason I ask is that we have a service provider who has stipulated a strict 
format for the signature to be used when signing and sending data to them

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#";>
  <SignedInfo>
    <CanonicalizationMethod 
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
    <SignatureMethod 
Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
    <Reference URI="">
      <Transforms>
        <Transform 
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
        <Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"/>
      </Transforms>
      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
      <DigestValue>xe/kONljHYOi5X1sw8AmgIjbHw/SX8zjAT98zpJahhI=</DigestValue>
    </Reference>
  </SignedInfo>
  <SignatureValue>7vdS9h04J/slnfUO1aoQ/RvbvWE=</SignatureValue>
  <KeyInfo>
    <X509Data>
      
<X509SubjectName>CN=rsa0,OU=rtp,O=org,L=location,ST=Unknown,C=</X509SubjectName>
      <X509IssuerSerial>
        <X509IssuerName>CN=sign0, OU=rtp, O=org, L=location, 
ST=Unknown,C=</X509IssuerName>
        <X509SerialNumber>1328092436</X509SerialNumber>
      </X509IssuerSerial>
    </X509Data>
  </KeyInfo>
</Signature>

Regards
Tony
"FINASTRA" is the trade name of the FINASTRA group of companies. This email and 
any attachments have been scanned for known viruses using multiple scanners. 
This email message is intended for the named recipient only. It may be 
privileged and/or confidential. If you are not the named recipient of this 
email please notify us immediately and do not copy it or use it for any 
purpose, nor disclose its contents to any other person. This email does not 
constitute the commencement of legal relations between you and FINASTRA. Please 
refer to the executed contract between you and the relevant member of the 
FINASTRA group for the identity of the contracting party with which you are 
dealing.

Reply via email to