mirror of
https://github.com/trussed-dev/piv-authenticator.git
synced 2026-06-20 04:16:15 -07:00
254 lines
10 KiB
Plaintext
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
|
|
"),
|
|
)
|
|
]
|
|
),
|
|
]
|