Files
piv-authenticator/tests/command_response.ron
2024-06-20 16:48:06 +02:00

254 lines
10 KiB
Plaintext

[
IoTest(
name: "Verify",
cmd_resp: [
VerifyApplicationPin(),
VerifyApplicationPin(pin: "3131313131313131", expected_status: RemainingRetries(2)),
VerifyGlobalPin(expected_status: KeyReferenceNotFound),
]
),
IoTest(
name: "Select",
cmd_resp: [
Select
]
),
IoTest(
name: "Default management key",
cmd_resp: [
AuthenticateManagement(
key: (
algorithm: Tdes,
key: "0102030405060708 0102030405060708 0102030405060708"
)
)
]
),
IoTest(
name: "Aes management key",
cmd_resp: [
AuthenticateManagement(
key: (
algorithm: Tdes,
key: "0102030405060708 0102030405060708 0102030405060708"
)
),
SetManagementKey(
key: (
algorithm: Aes256,
key: "0102030405060708 0102030405060708 0102030405060708 0102030405060708"
)
),
AuthenticateManagement(
key: (
algorithm: Aes256,
key: "0102030405060708 0102030405060708 0102030405060708 0102030405060708"
)
)
]
),
IoTest(
name: "unauthenticated set management key",
cmd_resp: [
SetManagementKey(
key: (
algorithm: Aes256,
key: "0102030405060708 0102030405060708 0102030405060708 0102030405060708"
),
expected_status: SecurityStatusNotSatisfied,
),
AuthenticateManagement(
key: (
algorithm: Aes256,
key: "0102030405060708 0102030405060708 0102030405060708 0102030405060708"
),
expected_status_challenge: IncorrectP1OrP2Parameter,
expected_status_response: IncorrectP1OrP2Parameter,
)
]
),
IoTest(
name: "Generate key",
cmd_resp: [
AuthenticateManagement(
key: (
algorithm: Tdes,
key: "0102030405060708 0102030405060708 0102030405060708"
)
),
IoData(
input: "00 47 009A 05
AC 03
80 01 11",
output: Len(70),
)
]
),
IoTest(
name: "PUT DATA",
cmd_resp: [
GetData(
input: "5C 01 7E",
output: Data("7e 12 4f 0b a000000308000010000100 5f2f 02 4010")
),
GetData(
input: "5C 03 5FC102",
output: Len(61)
),
PutData(
input: "5C 03 5FC102 53 10 000102030405060708090A0B0C0D0E0F",
expected_status: SecurityStatusNotSatisfied
),
GetData(
input: "5C 03 5FC102",
output: Len(61)
),
AuthenticateManagement(
key: (
algorithm: Tdes,
key: "0102030405060708 0102030405060708 0102030405060708"
)
),
PutData(
input: "5C 03 5FC102 53 10 000102030405060708090A0B0C0D0E0F",
),
GetData(
input: "5C 03 5FC102",
output: Data("53 10 000102030405060708090A0B0C0D0E0F")
),
PutData(
input: "5C 01 7E 53 10 000102030405060708090A0B0C0D0E0F",
),
GetData(
input: "5C 01 7E",
output: Data("7e 10 000102030405060708090A0B0C0D0E0F")
),
]
),
IoTest(
name: "RESET FAILED",
cmd_resp: [
Reset(
expected_status: ConditionsOfUseNotSatisfied,
),
VerifyApplicationPin(pin: "3131313131313131", expected_status: RemainingRetries(2)),
VerifyApplicationPin(pin: "3131313131313131", expected_status: RemainingRetries(1)),
VerifyApplicationPin(pin: "3131313131313131", expected_status: OperationBlocked),
Reset(),
]
),
IoTest(
name: "UUID",
uuid_config: None,
cmd_resp: [
GetData(
input: "5C 03 5FC102",
output: Len(61),
),
AuthenticateManagement(
key: (
algorithm: Tdes,
key: "0102030405060708 0102030405060708 0102030405060708"
)
),
PutData(
input: "5C 03 5FC102 53 3b 3019d4e739d821086c1084210d8360d8210842108421804210c3f3341000112233445566778899aabbccddeeff350839393939313233313e00fe00",
),
GetData(
input: "5C 03 5FC102",
output: Data("53 3b 3019d4e739d821086c1084210d8360d8210842108421804210c3f3341000112233445566778899aabbccddeeff350839393939313233313e00fe00"),
),
]
),
IoTest(
name: "With UUID",
uuid_config: WithUuid("00112233445566778899AABBCCDDEEFF"),
cmd_resp: [
GetData(
input: "5C 03 5FC102",
output: Data("53 3b 3019d4e739d821086c1084210d8360d8210842108421804210c3f3341000112233445566778899aabbccddeeff350839393939313233313e00fe00"),
),
AuthenticateManagement(
key: (
algorithm: Tdes,
key: "0102030405060708 0102030405060708 0102030405060708"
)
),
PutData(
input: "5C 03 5FC102 53 3b 3019d4e739d821086c1084210d8360d8210842108421804210c3f33410B0BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB30839393939313233313e00fe00",
),
GetData(
input: "5C 03 5FC102",
output: Data("53 3b 3019d4e739d821086c1084210d8360d8210842108421804210c3f33410B0BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB30839393939313233313e00fe00"),
),
]
),
IoTest(
name: "Change reference with too short PIN",
cmd_resp: [
ChangePin(
new: "31323334FFFFFFFF",
expected_status: IncorrectDataParameter,
),
],
),
IoTest(
name: "Change reference with too short PIN",
cmd_resp: [
ChangePin(
new: "3232323232323232",
old: "3333333333FFFFFF",
expected_status: IncorrectDataParameter,
),
],
),
IoTest(
name: "Pin and Puk",
uuid_config: WithBoth("00112233445566778899AABBCCDDEEFF"),
cmd_resp: [
ChangePin(
new: "313131313131FFFF",
),
ChangePuk(
new: "0102030405060708",
),
VerifyApplicationPin(pin: "313233343536FFFF", expected_status: RemainingRetries(2)),
ChangePuk(
old: "0102030405060708",
new: "AABBCCDDEEFF0011",
),
]
),
IoTest(
name: "RSA signature value",
uuid_config: WithBoth("00112233445566778899AABBCCDDEEFF"),
cmd_resp: [
AuthenticateManagement(
key: (
algorithm: Tdes,
key: "0102030405060708 0102030405060708 0102030405060708"
)
),
ImportRsaKey(
p: "f39c20ab767b26d5a086b6b4d3bf354d1e08fed0d6d473f70ca89240ddd6f4727c16d0085879d24474d200858a13d17fe388237a5c0477ceb43b0a38111d062378fdec70acb10d0c1970b23ed14f920e8d235d67df7d09006b1d38c58d6ee68df046a00f67e190c466660a27775bc595c914d82959a0d327725311e9291f7829",
q: "c96dc86e7c16b50c520c6eddedc8a0f3a899bdd2e0c1ea78361466fc4e6733dd1677afb69bd3d049b4bf50725e998a75d1c5e0257754bc48181acb6cdef217033db29d992c487e75ee6d312b51e3d11472c8393bfb004b666afccdfcd6f3950fc5aeac0a7ee1d599ae95deaf32370c47b811ec04feeb21f09162133b0e9d24c1",
e: "010001",
// dq: "8c6cfdd390acdff143ee29088d32568b27da6eccea26268941e27d5d9e6732700aaecc103998b457fe2b763115a46333fa57c2093ca515520983fc97dce1d78b49e3111ded12691f5c6641661b04010a096f6eff52e084b0551c039b265bd06a9b7d47b1557da9c5274292697f4f833f28a34df0b9ab41110eb9da004d12dec1",
// dp: "ec67f3f0512f5bd56e4dad1ab86e531c7e6c3e548e56681f34429683aa84c27e235bc4108543db40a19975f621b3efd7cb07bf5e2bd40e2c230d34728a70ff1707806ba6408024e83bfbf88e2b73ab8ac17eb3536d379ab7b43b0c6ff23bd033a81bf19261be2d4ddb0d65073db66a7d5c410530c390e5b8df222c3c77b2d959",
// qinv: "aceae8faeb532417a93170013886844ea6842ce48d3563ccaa5d76c2b4508a8c1dffa112466e04523626f0bafb113c615bccd36d57044fbbd35e71a34baf2578b10966dcd551109819830df4879948ae59a1f0f7c6475fcc6aabef9017f0a840fbee9521564aedbea12726a3d85fd07fdb37624a318fd50ddd02153d98d83f7e",
),
VerifyApplicationPin(),
Sign(
algo: 0x07,
key_reference: 0x9A,
data: "01111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
output: Data("
7c 82 0104
82 820100
0b2c35952261a19225aff67826bceadc9ae8ad2b1093bfefa59c54eb578f98a2031e88bdaa9a01630bd7fd0045d105adc9f8d8a0ba09559ef54336a526a64ddca659182f9db713b59ab54ad5aa9dc252e93d817e4a74a237f37704e5e95f4db86618572de02f20a563bf30b04fcea0a17dcc5d45903448b776cadf1dcc0413f6fbc2130fa2570035bac0173410af7e7ac30cbc76bae5f17cff3deaeff1dd674e33dc16d00078d07f10f6cabadc7ce781c6fd81f9b52540a163629d2feb3bd47e548e07c78336724875f801fcc9bcf847a459161ab3cba623e2c52a8a61d4ba271a2bc526f99052d4bcfea7c9b391baeec2326cc5b44a3c4b26b3aeba38fde759
"),
)
]
),
]