# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Hash descriptor database file consists of sections for various Chrome OS
# boards. Each board description section starts with a line of 4 characters
# which is the board ID (the same as the board's RLZ code).
#
# Each board description section includes variable number of range
# descriptor entries, each entry consisting of semicolon separated fields:
#
# {a|e|g}:{h|d}:base_addr:size[:value[:value[:value...]]]]
#
# Where
#
#  - the first sindgle character field defines the way the range is accessed:
#     a - AP flash
#     e - EC flash
#     g - EC flash requiring gang programming mode
#  - the second single character field defines the range type
#     h - Cr50 returns the hash of the range
#     d - Cr50 returns actual contents of the range (hex dump)
#   - the third and and forth fields are base address and size of the range
#   - ranges of type 'h' include one or more values for the hash of the range.
#
# Descriptor entries can be split along multiple lines. Each entry is
# terminated by an empty line. Board description section is completed when
# another board ID or end of file is encountered.
#
# All values are expressed in hex. Repeating empty lines and lines starting
# with '#' are ignored.
#

QZUX

# 1: Valid hash section.
a:h:0:10000:
756c41b90ac9aa23a6c98ce13549dccd72e0a83f8537eb834d9cfc3d12bf3503:
336c41b90ac9aa23a6c98ce13549dccd72e0a83f8537eb834d9cfc3d12bf3503:
446c41b90ac9aa23a6c98ce13549dccd72e0a83f8537eb834d9cfc3d12bf3503

# 2: Valid dump section.
a:d:10:10

# 3: Valid hash section.
e:h:0:100:
55d262badc1116520a7ae1d3fda380c0382b4b87f0db10de6495053ba3aadb87:
444442badc1116520a7ae1d3fda380c0382b4b87f0db10de6495053ba3aadb87:
443322badc1116520a7ae1d3fda380c0382b4b87f0db10de6495053ba3aadb87

# 4: Invalid dump section (includes hash)
a:d:20:10:55d262badc1116520a7ae1d3fda380c0382b4b87f0db10de6495053ba3aadb87

# 5: Invalid hash section (does not include hash)
e:h:0:100:

# 6: Another invalid hash section (does not include hash)
e:h:0:100:

# extra empty lines


# 7: Invalid hash section (hash too short)
e:h:0:100:
55d262badc1116520a7ae1d3fda380c0382b4b87f0db10de6495053ba3aadb8

# 8: Invalid hash section (hash too long)
a:h:0:10000:
756c41b90ac9aa23a6c98ce13549dccd72e0a83f8537eb834d9cfc3d12bf35034:
336c41b90ac9aa23a6c98ce13549dccd72e0a83f8537eb834d9cfc3d12bf3503

# 9: Invalid hash section (hash includes non-hex value)
a:h:0:10000:
756c41b90ac9aa23a6c98ce13549dccd7xe0a83f8537eb834d9cfc3d12bf3503:
336c41b90ac9aa23a6c98ce13549dccd72e0a83f8537eb834d9cfc3d12bf3505

# 10: Invalid hash section (hash does not include 3 variants)
a:h:0:10000:
756c41b90ac9aa23a6c98ce13549dccd75e0a83f8537eb834d9cfc3d12bf3503:
336c41b90ac9aa23a6c98ce13549dccd72e0a83f8537eb834d9cfc3d12bf3505

# 11: Invalid dump section (size includes non hex character)
a:d:10:10x

ABCD

a:d:10:10
