BNF for Maker.jj
NON-TERMINALS
Specification
::=
(
TestModule
)+ <EOF>
TestModule
::=
MessageDigestTest
|
CipherTest
|
IncludedTest
MessageDigestTest
::=
<MESSAGE_DIGEST>
Identifier
( (
MessageDigestProperties
)? <DATA> (
MessageDigestData
)+ )+
MessageDigestProperties
::=
<PROPERTIES> (
AlgorithmSpecificProperty
)+
MessageDigestData
::=
SingleIterationData
|
MultiIterationData
SingleIterationData
::=
HexOrASCIIData
HexadecimalData
MultiIterationData
::=
LongValue
"*"
HexOrASCIIData
HexadecimalData
CipherTest
::=
<CIPHER>
Identifier
( (
CipherProperties
)? <DATA> (
CipherData
)+ )+
CipherProperties
::=
<PROPERTIES> ( <MODE>
Identifier
)? ( <PADDING>
Identifier
)? ( <IV>
HexadecimalData
)? ( (
AlgorithmSpecificProperty
)+ )?
CipherData
::=
TwoWayTestData
|
SymmetricTestData
|
SpeedTestData
TwoWayTestData
::=
HexadecimalData
HexOrASCIIData
HexadecimalData
SymmetricTestData
::=
HexadecimalData
HexOrASCIIData
<AUTO>
SpeedTestData
::=
HexadecimalData
HexOrASCIIData
<SPEED>
AlgorithmSpecificProperty
::=
Identifier
"=" (
IntegerValue
|
StringValue
|
HexadecimalData
)
Identifier
::=
<ID>
StringValue
::=
<STRING_LITERAL>
IntegerValue
::=
<NUMBER>
LongValue
::=
<NUMBER>
HexadecimalData
::=
<HEX_LITERAL>
HexOrASCIIData
::=
(
HexadecimalData
|
StringValue
)
IncludedTest
::=
<INCLUDE> (
StringValue
|
Identifier
)