diff --git a/test/features/200_key_removal.feature b/test/features/200_key_removal.feature new file mode 100644 index 0000000..2582c25 --- /dev/null +++ b/test/features/200_key_removal.feature @@ -0,0 +1,40 @@ +@keygen +Feature: key removal + In order to use a token + A token should have keys + + Scenario: remove OPENPGP.1 key (sign) + When removing a key OPENPGP.1 + Then it should get success + + Scenario: remove OPENPGP.2 key (decrypt) + When removing a key OPENPGP.2 + Then it should get success + + Scenario: remove OPENPGP.3 key (authentication) + When removing a key OPENPGP.3 + Then it should get success + + Scenario: remove data object Finger print sig + Given cmd_put_data with c7 and "" + Then it should get success + + Scenario: remove data object Finger print dec + Given cmd_put_data with c8 and "" + Then it should get success + + Scenario: remove data object Finger print aut + Given cmd_put_data with c9 and "" + Then it should get success + + Scenario: remove data object keygeneration data/time sig + Given cmd_put_data with ce and "" + Then it should get success + + Scenario: remove data object keygeneration data/time dec + Given cmd_put_data with cf and "" + Then it should get success + + Scenario: remove data object keygeneration data/time aut + Given cmd_put_data with d0 and "" + Then it should get success diff --git a/test/features/201_keygen.feature b/test/features/201_keygen.feature new file mode 100644 index 0000000..472ccde --- /dev/null +++ b/test/features/201_keygen.feature @@ -0,0 +1,22 @@ +@keygen +Feature: key generation + In order to use a token + A token should have keys + + Scenario: generate OPENPGP.1 key (sign) + When generating a key of OPENPGP.1 + And put the first data to c7 + And put the second data to ce + Then it should get success + + Scenario: generate OPENPGP.2 key (decrypt) + When generating a key of OPENPGP.2 + And put the first data to c8 + And put the second data to cf + Then it should get success + + Scenario: generate OPENPGP.3 key (authentication) + When generating a key of OPENPGP.3 + And put the first data to c9 + And put the second data to d0 + Then it should get success diff --git a/test/features/steps.py b/test/features/steps.py index 00a5af7..030577e 100644 --- a/test/features/steps.py +++ b/test/features/steps.py @@ -109,6 +109,27 @@ def remove_key(openpgp_keyno_str): t = rsa_keys.build_privkey_template_for_remove(openpgp_keyno) scc.result = ftc.token.cmd_put_data_odd(0x3f, 0xff, t) +@When("generating a key of OPENPGP.(.*)") +def generate_key(openpgp_keyno_str): + openpgp_keyno = int(openpgp_keyno_str) + pubkey_info = ftc.token.cmd_genkey(openpgp_keyno) + scc.data = rsa_keys.calc_fpr(pubkey_info[0], pubkey_info[1]) + +@When("put the first data to (.*)") +def cmd_put_data_first_with_result(tag_str): + tag = int(tag_str, 16) + tagh = tag >> 8 + tagl = tag & 0xff + scc.result = ftc.token.cmd_put_data(tagh, tagl, scc.data[0]) + +@When("put the second data to (.*)") +def cmd_put_data_second_with_result(tag_str): + tag = int(tag_str, 16) + tagh = tag >> 8 + tagl = tag & 0xff + result = ftc.token.cmd_put_data(tagh, tagl, scc.data[1]) + scc.result = (scc.result and result) + @Then("you should get: (.*)") def check_result(v): value = ast.literal_eval("'" + v + "'")