******************************************************************************* * NIST/ITL-CSD BioCTS for ANSI/NIST-ITL * ******************************************************************************* * For more information: * * Email: biocts@nist.gov * * Website: http://www.nist.gov/itl/csd/biometrics/biocta_download.cfm * ******************************************************************************* ******************************************************************************* * 09/20/2016 Version Number: Beta 2.0.6107.19926 * ******************************************************************************* Bug Fixes: + Corrected Table of Contents parse error, where application would hang if transaction specified record length longer than data and additional entries are present in the Table of Contents. + Corrected parsing errors when transactions are malformed (such as missing periods, colons, and other characters in field number tags). + Corrected parse issue when the record type has a leading zero. This is now reported as a warning, but the parsing has been corrected. + Corrected Out of Memory exception when dealing with larger images + Corrected intermittent missing image-type tests for some Binary records + Corrected Editor error when loading data into the image field of Binary records + Corrected double-click bug so that the editor only opens if the file row is clicked in the editor and only if left clicks are used. + Corrected results files for batch files with the same filename. They were previously being overwritten, but not display with "-Duplicate" at the end of the result filename. + Corrected Editor bug so that subfields and information items display in the correct hierarchy for all field types (was previous malformed for some undefined fields and modified fields). + Corrected bug in text results wrapping in the Batch Results window for words exactly equal to the width of the window + Corrected 10.014-TVC Mnemonic (was displaying as RHC) + Corrected 18.017-BCT Mnemonic (was displaying as BCG) Application Changes: + Added option to "Output Errors Only in Text Log" under "Output Options" on the Options Tab. + Modified Program Flow - Batch Testing (Traditional and XML) can no longer be run concurrently with the Traditional Editor; this was causing out of memory errors. + Added quick close key, `Escape` for pop up windows. + Added "drag and drop" support to the batch windows so that transactions can be dropped into the window. + Added "drag and drop" to the Traditional Editor so taht transactions can be dropped in for editing. + Traditional Editor improvements: -Right-click context menu added to batch files to allow the user to open test result and source data files and directories for the selected file, or open the file in the editor. -Modified "Organize Fields" feature of the Traditional Editor so that the following entities cannot be moved (to avoid parsing issues): Field xx.001 when in the first position in the Record. Field xx.999 when in the last position in the Record. Record Type-1 when in the first position in the Transaction. -Modified so that Field xx.001 is always added for new records to avoid parsing issues. Added checks to make sure Field xx.001 cannot be modified or deleted when in the first position. -Modified so that Record Type-1 cannot be deleted when in the first position. -Added several checks for binary record and field additions so that the first 4 bytes are always used to indicate the record length. -Added checks to make sure binary data is within the min and max length expected. -Shows subfields and information items for all fields (even single entry data fields) since the standard clarifies that all fields must have one subfield and one information item at a minimum. + Reclassified assertions as Parse-level if they are related to the parsing of the transaction, regardless of whether they are Level 1 or Level 2. + Small performance improvements + Improvements to XML report output + Added test (FieldNumberLengthOneToNine) for FieldNumber digit count from 1 to 9 ******************************************************************************* * 10/13/2015 Version Number: Beta 2.0.5791.13139 * ******************************************************************************* Application Changes: + Removed code that assumed ASCII encoding in preparation for future versions which may support additional encodings such as UTF-8. + Usability modifications to automatically apply changes made in the options tab. Also disabled ability to change options while tests are being run. + Error Log changes: File name is now BioCTS_AN_ErrorLog.log; and is located in the User's "My Documents" folder Traditional Only Changes: + Improved parsing feedback for AN-2011, when unsupported or reserved Record Types are present in the transaction. + Corrected value ranges for Fields 13.013 and 14.013 based on text in section 7.7.4.2. Field 13.013 no longer allows the values 11-15 and 40-54, and does allow new values 85 and 86. Field 14.013 now allows values 51-54. + For AN-2011, Corrected Test Names for test previously reported as "Type-XX-SLC-THPS-TVPS-Conditional" and "Type-XX-SLC-SHPS-SVPS-Conditional", where XX is the record type. The names are now "TypeXX-SLC-THPS-TVPS-Conditional" and "TypeXX-SLC-SHPS-SVPS-Conditional" as listed in NIST SP 500-295 R.1. (The first dash is removed after Type). The test was also revised so that the result is reported even when fields are missing. + For AN-2013, Corrected Test Names for test previously reported as "Type-XX-SLC-THPS-TVPS-Conditional" and "Type-XX-SLC-SHPS-SVPS-Conditional", where XX is the record type. The names are now "XX.YYY-TVPS-Value-Dependent-SLC" and "XX.YYY-SVPS-Value-Dependent-SLC" as listed in NIST SP 500-304. The test was also revised so that the result is reported even when fields are missing. + For Record Types 16 and 20, adjusted several image tests to report only Pass/OK and Warning (never fail), since NIST SP 500-304 Annex D states that "Types 16 and 20 are only subject to the terms defined in this section if they contain friction ridge data". See Annex D Figure D.13 for an overview of the tests. + Removed redundant Type 13 test "Type13-13.008-Conditional-SHPS" and "Type13-13.008-Conditional-SVPS" from Record-Level since it is already reported at the SHPS and SVPS level. + Added support for 19.029-FSP-No Crossing Sides, which checks to see if the polygon described by the vertices has any crossing sides (not including end points, which are shared to form the polygon). This test was added to the 2013 Update only (see section 8.19.17). + Modified "Type20-20.017-20.999-CondCode Dependent" and "Type20-20.018-20.999-CondCode Dependent" to test if/then instead of if and only if. + Corrected testing of xx.994 XOR xx.999 in AN-2013 transactions. XML Only Changes: + Added "Partially Supported" for Record-Type 11 instead of "Unknown", and added support for basic fields such as 11.001 and 11.002. + Modified Leading Zero test so that it no longer stops the software from processing null values (when XML elements are missing). Also modified to report for all cases (even when leading zeros are not present). + Aligned the XML Schema with the latest updated version released by NIST in June, 2015: - For 2011 and 2013: Updated assertion for field 14.027 biom:FingerprintImageStitchedIndicator to test for values "true" or "1". Also updated the char min and max to 1 to 4. - For 2013 xx.047, Updated to be found in biom:CaptureOrganization/ nc:OrganizationUnitName. - For 2013, Moved 10.034 into biom:ImageCaptureDetail - For 2013 12.994 and 22.994, split EFR into two possible XML elements: biom:SourceExternalAnalogFileReferenceText and biom:SourceExternalDigitalFileReferenceText Both Encoding Changes: + Corrected image tests for NONE (uncompressed), so that if the dimensions are not known, HLL and VLL are not tested against the image. Previously these tests incorrectly reported width and height of 0. + Tested that Field 17.013 is present if and only if the image field is also present. (This test was missing). Changes Made to the Sample Data: + Added a new 2011 XML sample transaction to test for image dependent requirements for Type-17. ******************************************************************************* * 09/03/2015 Version Number: Beta 2.0.5724.16724 * ******************************************************************************* Changes Made to the Sample Data: + AN-2013 Traditional Sample Data: one of the files was incorrectly labeled as a passing file. "pass-all-supported-types2.an2" is renamed to "fail-all-supported-types-long-data.an2" + For AN-2011 and AN-2013, several files containing Type-9 minutiae data were corrected so that minutiae, delta, and core information was positioned properly on the image. These files include: "pass-type-9-13-9-14-m1.an2", "pass-type-9-13-m1.an2", and "pass-type-9-14-m1.an2", and "pass-all-supported-types.an2" for AN-2011 and AN-2013. Traditional Only Changes Made: + Bug fix for editor: previously crashed when attempting to reload a file from disk after the file was renamed or deleted. The Editor now warns the user that it cannot access the file. + Correction to 14.015-FVC-Value (for 2013) to now allow value TPP. + Changed how a discrepancy in the standard is handled: Fields 14.023 and 14.024 Subfield occurence should have an upper limit of 9 Subfields based upon the text in section 7.7.7 of the standard (2011 & 2013). + For the Fields describing polygons and paths in section 7.7.12, adjustments were made to the test that checks for unique vertices so that all errors are reported in the same result rather than multiple results. The result is reported as RecordType.FieldNumber-Mnemonic-Vertices Unique. Also, this test was missing for all Fields in Type-9 that required it. Those missing tests have been added in this version. + Added support for 14.025-ASEG-No Crossing Sides, which checks to see if the polygon described by the vertices has any crossing sides (not including end points, which are shared to form the polygon). + Added support for a 9.138-NMN-Value-Dependent for AN-2011 and AN-2013 to test that NMN does not equal CMI (see 8.9.5.13 of AN-2013 standard). + Attempts to parse Raw data images for display in the GUI. XML Only Changes Made: NONE ******************************************************************************* * 08/06/2015 Version Number: Beta 2.0.5701.16353 * ******************************************************************************* Changelog Modifications: + Merged older Changelogs into current changelog to provide full history. + Added Changelog Tab to About Window in BioCTS Changes Made for Traditional and XML Encodings: + Usability update: Removal of pop-up prompts after testing and various actions. The user interface now displays a label at the bottom right of the window to show messages that do not interrupt the user’s progress. + Usability update: Option to have output window minimized by default to avoid disrupting user. Traditional Only Changes Made: + Full support for all Record Types defined in NIST SP 500-290 and NIST SP 500-290 Rev.1 (Update 2013). To achieve this, support for the following AN-2011 types was added: 2,7,8,9,16,18,19,20,21,22,98, and 99 and support for the following AN-2013 types was added:2,7,8,9,11,12,13,14, 15,16,17,18,19,20,21,22,98,and 99. + Bug fix for 17.016 incorrectly parsing information items. + Bug fixes for some information items where the Editor was not saving or loading data when the save or load buttons were pressed. + Improvement to parsing of information items: the tool will now parse information items even if the field does not use the correct structure (i.e. the correct number of subfields/information items) + Improvement to parsing of Records: The parsing methods in the previous version of the tool provided poor error messages in some cases by not providing enough detail, such as “Error: Data passed in but not parsed”. Parsing error messages now describe how much data was missing or how much extra data was present in relation to the Transaction Contents found in Field 1.003. When modifying data in the Editor and re-running tests, the previous versions of the tool did not properly report errors at times because the data was not re-parsed; it was instead created from the transaction saved in memory. The new version forces the data in memory to be re-parsed just like a new transaction. + Editor features added: Add Record, Remove Record, Sort Records, Arrange Records, Show Record Image, Sort Fields by Number, Organize Fields, Add Binary Field, Modify Subfields, View Data Pop-out Window. + Edits and updates to output message formats, including shorting of numeric and alphabetic lists to instead be ranges (i.e. 1,2,3,4,5,6,7 is now 1-7). XML Only Changes Made: + Support for the Record Types 12 and 22 was added to the AN-2013 CTS. + A newer version of the Schema files were released for the base standard. These new Schema files are included in this version of the tool. Note: modifications were made to these new Schema files to correct discrepancies with the base standard. These changes are listed in the BioCTS documentation. + Corrections were made to the ordering and location of Type-10 elements due to changes in the latest version of the Schema files. These elements include: biom:ImageCaptureDateEstimateRange and nc:OrganizationUnitName + Field 10.034: The value is now checked via the Schema as type xsd:duration instead of the format YyyMmmDdd. The Char Count for XML was modified to allow any value greater than or equal to 3. + Field 10.049-ULCL: The mnemonic was erroneously reported as "LLCL" in the previous version. The mnemonic is now correctly reported as "ULCL". ******************************************************************************* * 09/09/2014 Version Number: Beta 1.2.5353.15785 * ******************************************************************************* Changes Made for Traditional and XML Encodings: + This version of BioCTS is the first to support multiple CTSs for each encoding (Traditional or XML). The user is able to select which CTS version (currently 2011 or 2013) for each encoding. + A SHA2 512bit Hash Summary has been added to the Text and XML output. + For the 2013 Update, support has been added for ?????? Record Types of the ANSI/NIST-ITL 1-2011: 2013 Update + For 2011, the following changes and corrections were implemented: -Updated character count max to be 11 instead of 9 for 10.042-TSC. This change was made for both 2011 and 2013 because it was a typo in the 2011 standard. -Removed duplicate "CondCode Dependent" assertions for Fields 10.026, 10.027, and 10.028. -Added missing "CondCode Dependent-IMT" for 10.023. -Added a warning that control characters should not be present in values marked as Unicode. This is only a warning and does not affect the overall pass/fail conformance status. -Adjusted value constraints for xx.998-LTS, LGS, ELE due to a typo in the 2011 version of the standard. -A correction was made for Characters Types marked "ANS" and considered "ASCII Printable". The space character is now included in this category but was erroneously omitted in the 2011 version of the CTS. Traditional Only Changes Made: + The Transaction File Editor will now check if the Transaction has been modified on the disk and re-parse if needed. + Two buttons, "Add Field" and "Remove Field", were added to the Traditional Editor. + The CTS now correctly allows optional information items to be present with no data. In this case, a passing Parse-level Result is added to the information item with the message "Optional information item not present". + For 2011, the following changes and corrections were implemented: -The log output now shares the same descriptive language format as the 2011 XML output for some assertions. More may be added in future releases. -A missing requirement was added to check for leading zeros in numeric values (see section 8 of the 2011 standard). The sample transactions were updated to reflect this correction. XML Only Changes Made: + A SHA2 512bit Hash Summary has been added to the Text and XML output for Schema files. ******************************************************************************* * 10/24/2013 Version Number: Beta 1.1.5045.10327 * ******************************************************************************* Changes Made: + Fixed bug for Character Type, where Unicode values outside of the ASCII range of 0 to 127 were being erroneously labeled as errors. + Added visual error statistics using charts and graphs. ******************************************************************************* * 08/01/2013 Version Number: Beta 1.1.4961.21207 * ******************************************************************************* Changes Made: + Added ANSI/NIST-ITL 1-2011 NIEM XML Conformance Test Suite + New Features: Updated Text Log Output, Text Log Search and Batch and Individual File Statistics added to the User Interface + ANSI/NIST-ITL 1-2011 Conformance Test Suite. + Added missing Value test (Opaque) for 1.015-CSN. + Fixed bug in Assertion "1.012-NTR LTE NSR" where the values of 1.011 and 1.012 were reversed. + Removed WSQ20 from valid values for field 13.011 because it is not a lossless type. + Modified L2 Conditional Value test for 1.015-CSN. + Updated Assertion ID (testName). + Improved test result text. + Modified xx.[995,996,997,998,999]-RecordTypes Test Results to be L2 based on modifications made to CTM tables. + Improved Opaque test result message to explain what Opaque means. + Fixed bug in xx.998-GCM-Value. + Single-character UTM Zone Numers were not tested correctly. + Fixed bug where non-Integer values were reported as '0' for some Level-2 tests. + 13.024-FRMP-Value Updated to allow any values from Table 8. + 17.040-Value Updated to allow values 1 to 9999999 instead of 0 to 9999999. + Updated assertions names for more consistent naming. + All "Legacy" assertions renamed to include the field number and mnemonic as in "10.022-PXS-Legacy". + “Transaction-IDCsRelate” to “Transaction-MatchingIDCValues-ComparableBiometricTypes” + Updated assertion name "Records-Reserved" to "Transaction-Records Reserved". + Updated assertion name "Reserved Character Types" to "Transaction-Reserved Character Types". + Moved assertion to the Transaction level. + Updated assertion name "xx.002-IDCSeqValues" to "Transaction-IDCSequentialValues" + xx.002-IDCRelate to Transaction-IDCsRelate + xx.002-SameDimension to Transaction-MatchingIDCSameImageDimension + xx.995-ASC-ACN to Transaction-ASC-ACN-Match + xx.995-ASC-ASP to Transaction-ASC-ASP-Match + xx.995-ASC-ACN-SeqValues to Transaction-ASC-ACN-SequentialValues + xx.997-SOR-SRN to Transaction-SOR-SRN-Match + xx.997-SOR-RSP to Transaction-SOR-RSP-Match + xx.997-SOR-SRN-SeqValues to Transaction-SOR-RSP-SequentialValues + Type1-Occur Once to Transaction-Type1-OccursOnce + Type1-First to Transaction-Type1-First + Type3-Zero Occurrences to Transaction-Type3-ZeroOccurrences + Type5-Zero Occurrences to Transaction-Type5-ZeroOccurrences + Type6-Zero Occurrences to Transaction-Type6-ZeroOccurrences + 10.039-T10-DiffIDC to Transaction-SameT10-DiffIDC + 1.003-CRC-Transaction Record Count to Transaction-CRCEqualsRecordCount + xx.001-Record Header to Type[ActualRecordType]-Field001EqualsRecordLength + xx.001-First to Type[ActualRecordType]-Field001First + xx.002-Exists to Type[ActualRecordType]-Field002Exists + xx.002-Second to Type[ActualRecordType]-Field002Second + xx.995-RecordTypes to Type[ActualRecordType]-Field995NotPresent + xx.996-RecordTypes to Type[ActualRecordType]-Field996NotPresent + xx.997-RecordTypes to Type[ActualRecordType]-Field997NotPresent + xx.998-RecordTypes to Type[ActualRecordType]-Field998NotPresent + xx.999-RecordTypes to Type[ActualRecordType]-Field999NotPresent + 1.xxx-Mandatory CondCode to Type[ActualRecordType]-MandatoryCondCode + 1.xxx-Occurrence to Type[ActualRecordType]-FieldOccurrences + Assertions 1.001 to 1.017-Occurrence were condensed and named Type1-FieldOccurrences + 10.022-Occurrence Legacy to Type10-Field022Occurrence + 4.004-Occurrence to Type4-Field004Occurrence + Field Record Type to [ActualRecordType].[ActualFieldNumber]-FieldNumberMatchesRecordType + For all assertions named "CharType" followed by one of (A, N, AN, ANS, U, etc...) the assertion was renamed to simply "CharType" and the type was moved to the Result message rather than the name. + Added "Type{ActualRecordType]-" to the beginning of any assertions that are record-level assertions. + Renamed Level 2 tests and added new Level 1 tests: + 10.011-Value to 10.011-CGA-ValueDependent, Added new Level 1 10.011-CGA-Value + 14.011-Value to 14.011-CGA-ValueDependent, Added new Level 1 14.011-CGA-Value + 10.042-TSC-Value to 10.042-TSC-ValueDependent, Added new Level 1 10.042-TSC-Value + 10.029-FPC-Value to 10.029-FPC-ValueDependent, Added new Level 1 10.029-FPC-Value + 10.032-FPC-Value to 10.032-FPC-ValueDependent, Added new Level 1 10.032-FPC-Value + All LHC, RHC, TVC, BVC, HPO, VPO, HCX, HCY Value assertions were renamed to ValueDependent L2 Tests, and new Level 1 Value tests were added. ******************************************************************************* * 01/22/2013 Version Number: Beta 1.0.4771.15880 * ******************************************************************************* Changes Made: + ANSI/NIST-ITL 1-2011 Conformance Test Suite + Corrected error where FRMP results were not being displayed. + Modified 15.xxx-Occurrence to test that Fields 15.006 through 15.012 occur one or fewer times because they are listed as Dependent. + Modifications to xx.002-IDCRelate: + Added support for Minutiae to be compared to Finger, Friction Ridge, Palm, Plantar, and other Minutiae. + Added support for Friction Ridge to be compared to Finger, Minutiae, Palm, Plantar, and other Friction Ridge. + Added support for Palm and Finger types to be compared if and only if their position codes are 33 or 36, which represent the hypothenar region. + Aligned sample transactions with all changes made to code. + Fixed problem where an "Unknown" Record would prevent XML output. ******************************************************************************* * 10/25/2012 Version Number: Beta 1.0.4681.16434 * ******************************************************************************* Changes Made: + ANSI/NIST-ITL 1-2011 Conformance Test Suite + Adjusted conversion of string values to decimal values to produce a consistent and correct output across various localizations. (e.g., "12.34" should now convert to 12.34 regardless of locale) ******************************************************************************* * 9/27/2012 Version Number: Beta 1.0.4653.19915 * ******************************************************************************* Changes Made: + User Interface + Editor - Editor now displays the file path of the file being tested. + Editor - The Editor now defaults to the current file name when saving the file, previously the file name was empty. + ANSI/NIST-ITL 1-2011 Conformance Test Suite + Level 2 WSQ Encoder Version - No longer checks for encoder version number. No comprehensive list of Encoder Version allowable values are specified in the ANSI/NIST-ITL 1-2011 Standard nor WSQ Specifications. + Binary Record Type Fields - 8.002, 8.006, 8.007, 7.002 are now calling correct test functions for Level 1 tests. + Large Binary Field Data - Data for large binary fields (over 200 bytes) is now displaying as "Data too long to display".