XMLSignature - Reference Documentation
Class implementing support for XML Digital Signatures
This class provides for the ability to create and verify XML Digital Signatures.
Index of Methods
Constants
Type | Name | Description |
---|---|---|
String | INCLUSIVE | The Canonical XML (without comments) canonicalization method algorithm URI |
String | INCLUSIVE_WITH_COMMENTS | The Canonical XML with comments canonicalization method algorithm URI |
String | EXCLUSIVE | The Exclusive Canonical XML (without comments) canonicalization method algorithm URI |
String | EXCLUSIVE_WITH_COMMENTS | The Exclusive Canonical XML with comments canonicalization method algorithm URI |
String | BASE64 | The Base64 transform algorithm URI |
String | ENVELOPED | The Enveloped Signature transform algorithm URI |
String | XPATH | The XPath transform algorithm URI |
String | XPATH2 | The XPath Filter 2 transform algorithm URI |
String | XSLT | The XSLT transform algorithm URI |
Constructor
Prototype
XMLSignature(String filename)
Description
Create object and initialize from document in referenced file.Arguments
Type | Name | Description |
---|---|---|
String
|
filename | Name of file containing XML document, signed or unsigned. |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
Example
var ds = new XMLSignature("xmlsig1.xml");
addReference()
Prototype
void addReference(String uri, Number digestMech)
void addReference(String uri, Number digestMech, String[] transformations)
Description
Add a reference to the SignedInfo
Arguments
Type | Name | Description |
---|---|---|
String
|
uri | The URI pointing to the signed data |
Number
|
digestMech | One of Crypto.SHA_1, Crypto.SHA_256, Crypto.SHA_512 or Crypto.MD5 |
String[]
|
transformations | List of transformations to apply for reference |
Return
|
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
Example
ds.addReference("", Crypto.SHA_256, [XMLSignature.ENVELOPED]); ds.addReference("./xmlsig1.xml", Crypto.SHA_256);
sign()
Prototype
void sign(Crypto crypto, String c14n, Number mech, Key privateKey, Key publicKey)
Description
Create signature using the private key and signature mechanism.
The data to be signed is canonicalized using the selected method.
The public key is stored in the KeyInfo section.
Arguments
Type | Name | Description |
---|---|---|
Crypto
|
crypto | The crypto service to use |
String
|
c14n | The canonicalization method to apply |
Key
|
mech | The signature mechanism to use |
Key
|
privateKey | The private key used for signing |
Key
|
publicKey | The public key to be included in KeyInfo |
Return
|
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
GPError | GPError.CRYPTO_FAILED | The cryptographic signing operation failed |
Example
// Create empty public key object and set size var pubKey = new Key(); pubKey.setType(Key.PUBLIC); pubKey.setSize(1024); // Create empty private key object and set size var priKey = new Key(); priKey.setType(Key.PRIVATE); var crypto = new Crypto(); // Generate key pair crypto.generateKeyPair(Crypto.RSA, pubKey, priKey); ds.sign(crypto, XMLSignature.EXCLUSIVE, Crypto.RSA_SHA256, priKey, pubKey);
verify()
Prototype
boolean verify(Crypto crypto, Key publicKey)
Description
Verify XML signature using the public key provided.
Arguments
Type | Name | Description |
---|---|---|
Crypto
|
crypto | The crypto service to use |
Key
|
publicKey | The public key to be used for verification |
Return
|
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
GPError | GPError.CRYPTO_FAILED | The cryptographic verifying operation failed |
Example
assert(ds.verify(crypto, pubKey));
saveAs()
Prototype
void saveAs(String filename)
Description
Save XML Digital Signature to file.
Return
|
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
Example
var fn = GPSystem.mapFilename("xmlsig2.xml", GPSystem.CWD); ds.saveAs(fn);
© Copyright 2003 - 2013 CardContact Software & System Consulting, Minden, Germany