ISO Format
Signature ISO Format
Overview
Signatures captured using the Signature Library are saved in the proprietary Wacom Forensic Signature Store (FSS) format. The format is used consistently to provide compatibility between different platforms and applications, for example mobile signature capture with Windows SignatureScope analysis.
To provide interoperability with third-party software an ISO format signature can be used. A number of ISO standards are defined but the Signature Library implements the following:
- ISO 19785 XML format
- Binary data format specified in ISO19794-7
An example of an ISO format signature is as follows where the signature pen data is contained within the <BDB> tags:
Sample signature in ISO format
?xml
version="1.0" encoding="UTF-8"?>
<BIR xmlns="http://standards.iso.prg/iso-iec/19785/-3/ed-2/">
<!--
{iso registration-authority cbeff(19785) biometric-organization(0)
jtc1-sc37(257) patron-format(1) xml-full(7)} -->
<!--
<OBJECT_IDENTIFIER>1.1.19785.0.257.1.7</OBJECT_IDENTIFIER> -->
<Version><Major>2</Major><Minor>0</Minor></Version>
<CBEFFVersion><Major>2</Major><Minor>0</Minor></CBEFFVersion>
<BIRInfo>
<Creator>WacomGSS Signature SDK - 67</Creator>
<Integrity>false</Integrity>
<CreationDate>2018-06-19T14:15:17Z</CreationDate>
</BIRInfo>
<BDBInfo>
<CreationDate>2018-06-19T14:15:09Z</CreationDate>
<Type>SignatureSign</Type>
</BDBInfo>
<BDB>U0RJACAxMADBYOC0gIAAp7
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
/wGjMZBkK8AB/wGjMZBkK/IB/wGjMZBkLCMB
/wGjMZBkLFYB+wGjJpB3LIcBzwGjJZChLLoBjAGjHZDcLOwBQQGjDJEkLR4A8QGjDJEkLVAAAACjDJEkLYIAAAA=</BDB>
</BIR>
Implementation
The SigObj object has been extended to provide conversions between FSS and ISO formats. As a security measure a signature collected by Wacom Signature Capture can only be saved as either FSS or ISO, not both. However after importing an ISO signature it can be saved in the FSS format. The option to encrypt the ISO signature data is included. The following table indicates the import/export options available:
| Originating Source | Can export as ISO | Can save as FSS |
|---|---|---|
| Wacom Signature Capture | one or the other, but not both | |
| FSS (originating from Wacom Signature Capture) | - | |
| FSS (saved from ISO) | ||
| ISO |
Note that calling RenderBitmap with the option RenderEncodeData will effectively export FSS to the bitmap. To avoid attempting the output of both ISO and FSS formats the RenderEncodeData option will need to be avoided when exporting the ISO format.
API
Additions to flSigCOM for ISO support:
Classes
| Class | |
|---|---|
| AdditionalImportIsoData | |
Enumerator Types
| Enumerator | |
|---|---|
| ImportIsoFlags | |
| ExportIsoFlags | |
FlSigCOM: SigObj
Methods
| Method | |
|---|---|
| ImportIso | |
| ExportIso | |
Enumeration Types
ImportIsoFlags
Specifies the ISO format expected for import.
| Name | Value | Description |
|---|---|---|
| ImportIsoFlag_iso19784_7_binary | 1 | Binary format ISO |
| ImportIsoFlag_iso19785_3_xml | 2 | XML format ISO |
| ImportIsoFlag_iso19784_7_encrypted_binary | 3 | Binary encrypted ISO |
| ImportIsoFlag_iso19784_7_encrypted_text | 4 | Base64 encrypted ISO |
ExportIsoFlags
Specifies the exported ISO format.
| Name | Value | Description |
|---|---|---|
| ExportIsoFlag_iso19784_7_binary | 1 | Binary format ISO |
| ExportIsoFlag_iso19785_3_xml | 2 | XML format ISO |
| ExportIsoFlag_iso19784_7_encrypted_binary | 3 | Binary encrypted ISO |
| ExportIsoFlag_iso19784_7_encrypted_text | 4 | Base64 encrypted ISO |
Class
FlSigCOM: AdditionalImportIsoData
Summary
| Property |
|
| Name | Value | SigObj Property Description |
|---|---|---|
| Who | String | Specifies the name of signatory of the imported signature. |
| Why | String | Specifies the reason for signing of the imported signature. |
| When | DATE | Specifies the local time and date when the signature was captured. An OLE Automation Date data type is expected. Note that to supply a date in JavaScript the type must be explicitly converted, for example: additionalData.When = (new Date(2018,6-1,27, 11,0,0)).getVarDate(); // 27-06-2018 11:00:00 |
| TimeZoneOffset | Long | Time zone offset in MINUTES to UTC. For example -60 for UK BST. |
| ExtraData | String | ExtraData is a parameterized property that allows the client to store additional data within the signature object after capture. (See SigObj property ExtraData) For example: additionalData.ExtraData("Key1") = "value for Key1"; additionalData.ExtraData("Key2") = "value for Key2"; |
FlSigCOM: ISO methods
ImportIsoData
Reads an ISO format signature into the signature object.
| ImportIsoRetVal ImportIso(iso, importIsoFlags, additionalIsoData) |
|---|
| Parameter | Description |
|---|---|
| iso | Variant ISO data: String or Byte Array |
| importIsoFlags |
|
| additionalIsoData | object AdditionalImportData |
ImportIsoRetVal
When the ImportIsoFlag_iso19784_7_encrypted_binary flag is used, the variant iso is expected to be a BYTE[] containing encrypted iso19784_7 binary data. The appropriate decryption key must be set, via SetProperty, before calling ImportISO.
When the ImportIsoFlag_iso19784_7_encrypted_text flag is used, the variant iso is expected to be a string containing base64-encoded encrypted iso19784_7 binary data. As for ImportIsoFlag_iso19784_7_encrypted_binary, the decryption key must be set before calling ImportISO.
| ImportIsoRetVal | Type | SigObj Property Description |
|---|---|---|
| Succeeded | Bool | True if call was successful, otherwise False |
| DiagnosticMessage | String | Plain text error message |
| DiagnosticCode | String | Plain text error code |
The diagnostic messages are not localised and are intended for use by Wacom developers in the case of support being needed.
ExportIsoData
Creates an ISO format output of the current signature.
Export is only allowed if the SigObj has not been loaded from an FSS, or been saved as FSS (by accessing SigData or SigText). Either the BDB binary or a minimal XML wrapper can be retrieved.
Attempting a disallowed export will result in an exception being thrown.
ExportIso(exportIsoFlags)
| Parameter | Description |
|---|---|
| exportIsoFlags |
|
For ExportIsoFlag_iso19784_7_encrypted_binary and ExportIsoFlag_iso19784_7_encrypted_text, an encryption key must be set via SetProperty prior to calling ExportIso.
Return Value: iso (or exception)
iso binary- BDB binary format ISOiso xml- BDB XML format ISOiso encrypted binary- BDB binary encrypted format ISOiso Base64 encrypted- BDB Base64 encrypted format ISO