Skip to main content

Data types

Data types

The SignatureEngine component must handle the following data types:

DynamicSignature

A signature can be supplied as:

  • a SigObj signature object
  • binary signature data
  • signature data either as base-64 or hex-encoded text

SignatureImage

A signature image can be supplied in any common image format, including BMP, TIF, PNG, JPG etc.

It can be a scanned image of an ink-on-paper signature, or it can be an image that contains FSS data that's been steganographically embedded.

NB: Steganographic data has precedence over scanned images

Template

A template contains all the signing information for a single user. It includes the enrollment data for both types of signature (dynamic and static).

Templates are handled as BLOBs which are obfuscated and cannot be parsed except by the SignatureEngine. The BLOB data can be handled in either binary form or as base-64 encoded text.

ConfigurationOptions

Configuration options apply to all types of signatures. They are effective when a template is created but cannot be changed after the first signature has been enrolled. The enrollmentScore is the lowest found when comparing the most extreme signatures in the enrollment set. The updateInterval is defined in days here but must be converted to seconds internally.

TypeNameDescription
UINTTemplateSizeNumber of signatures needed for enrollment.
Min = 3, Max = 12, Default = 6
FLOATEnrollmentScoreThe minimum score needed to define a consistent set of signatures.
Default = 0.2
UINTUpdateIntervalThe minimum number of days that must elapse before enrolled templates can be updated.
Default = 30 days
enumSignatureStyleSets the classifier to the type of signatures expected
Options: Cursive, Kanji, Auto (Auto not currently implemented in the engine)
Default: Cursive

ImageOptions

Image options are used to control the way in which static images are processed and don't affect dynamic data in any way.

Some cleaning options are processor-intensive and will increase the verification time.

TypeNameDescription
BOOLRemoveSpeckleRemove small dots produced by poor scanning or low-quality paper
Default: FALSE
BOOLRemoveFoldRemove straight lines resulting from folds in the scanned paper
Default: FALSE
BOOLRemoveBoxRemove the rectangular box defining the signature area
Default: FALSE
BOOLRemoveSigningLineRemove the printed signature line
Default: FALSE
FLOATMinSigningLineLengthOnly applies when RemoveSigningLine is TRUE. Forces the line removal to ignore lines shorter than the given length in millimetres
Default: 0
FLOATMaxSigningLineThicknessOnly applies when RemoveSigningLine is TRUE. Forces the line removal to ignore lines that are thicker than the specified width in millimeters
Default: 0
BOOLAdjustContrastAdjust the image contrast before extracting signature ink
Default: FALSE
INTContrastOnly applies when AdjustContrast is TRUE. Sets the contrast adjustment to be applied
Default: 0, Min: -100, Max: 100
BOOLSetImageResolutionThe image resolution should normally be defined in the image metadata. However, some scanners fail to set the correct value and this option forces the correct value to be used
Default: FALSE
UINTImageResolutionThe image resolution to be used when SetImageResolution is TRUE

State

Note that there are three separate sets of enrollment: dynamic, static and mixed

TypeNameDescription
EnumBlankNo signatures have been added
EnumEnrollingOne or more signatures have been verified but not enough for a consistent enrollment set
EnumEnrolledSufficient consistent signatures have been verified and the template is enrolled
EnumUpdatedFully enrolled and last signature verified was used to update the reference data

EnrollmentStatus

TypeNameDescription
StateEnrollmentStateCondition of enrollment for this type of signature
UINTNumSignaturesCurrent number of signatures stored
UINTEnrollmentSizeNumber of consistent signatures needed for enrollment

NB: the NumSignatures could be equal to the number of signatures required for enrollment while the State is still Enrolling. This can occur if an excessively inconsistent set of reference signatures are enrolled.

TemplateStatus

The mixed data consists of comparisons between dynamic and static types of data. This is only needed transitionally and will never reach full enrollment so is not reported here.

TypeNameDescription
EnrollmentStatusDynamicStatusCurrent state of the dynamic reference data
EnrollmentStatusStaticStatusCurrent state of the static reference data

ComparisonType

TypeNameDescription
EnumNoComparisonDoneNo comparison was done (usually when the first signature is verified)
EnumStaticThe static image comparison engine was used
EnumDynamicThe dynamic signature comparison engine was used.
EnumMixedThe static image comparison was used with one of the signatures being converted from dynamic to an artificial image

InconsistencyType

TypeNameDescription
EnumConsistentWhen a verified signature is found to be a good match a score of 1.0 is returned
EnumGeometryThe overall shape of the verified signature differs from the reference signature
EnumLocalShapeLocal inconsistencies in the shape of the signature were found
EnumSpeedThe average speed of the signature is different
EnumAccelereationThe acceleration profile of the signature differs
EnumPressureThe pressure profile is different
EnumSizeThere are significant differences in the overall size of the signature
EnumSVMThe classification used a Support Vector Machine engine

VerificationResult

Returned from the verifier when a signature is verified.

The MixedScore uses the static verifier to compare the reference signature from the dynamic and static sets. It is only available when both types of data are being used.

TypeNameDescription
FLOATScoreThe comparison score, a value between 0 (inconsistent) and 1 (consistent)
ComparisonTypeEngineThe type of comparison engine used
InconsistencyTypeInconsistencyThe main type of difference found
TemplateStatusStateThe enrollment status for each type of signature
FLOATComplexityIndicates the complexity of the last signature verified. The value lies in the range 0 (trivially simple) to 1 (very long and with many features).
This only applies to dynamic signatures; images always have a complexity of 0
FLOATMixedScoreThe verification score comparing the static and dynamic data when both types are being handled
StringUpdatedTemplateUpdated template data as base-64 encoded text