mirror of
https://salsa.debian.org/gnuk-team/gnuk/gnuk.git
synced 2024-09-21 03:10:08 +00:00
77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
|
from freshen import *
|
||
|
from freshen.checks import *
|
||
|
from nose.tools import assert_regexp_matches
|
||
|
|
||
|
import ast
|
||
|
|
||
|
import gnuk
|
||
|
import rsa_keys
|
||
|
|
||
|
@Before
|
||
|
def ini(sc):
|
||
|
if not ftc.token:
|
||
|
ftc.token = gnuk.get_gnuk_device()
|
||
|
ftc.token.cmd_select_openpgp()
|
||
|
|
||
|
@Given("cmd_verify with (.*) and \"(.*)\"")
|
||
|
def cmd_verify(who_str,pass_str):
|
||
|
who = int(who_str)
|
||
|
scc.result = ftc.token.cmd_verify(who, pass_str)
|
||
|
|
||
|
@Given("cmd_change_reference_data with (.*) and \"(.*)\"")
|
||
|
def cmd_change_reference_data(who_str,pass_str):
|
||
|
who = int(who_str)
|
||
|
scc.result = ftc.token.cmd_change_reference_data(who, pass_str)
|
||
|
|
||
|
@Given("cmd_put_data with (.*) and \"(.*)\"")
|
||
|
def cmd_put_data(tag_str,content_str):
|
||
|
tag = int(tag_str, 16)
|
||
|
tagh = tag >> 8
|
||
|
tagl = tag & 0xff
|
||
|
scc.result = ftc.token.cmd_put_data(tagh, tagl, content_str)
|
||
|
|
||
|
@Given("cmd_reset_retry_counter with (.*) and \"(.*)\"")
|
||
|
def cmd_reset_retry_counter(how_str, data):
|
||
|
how = int(how_str)
|
||
|
scc.result = ftc.token.cmd_reset_retry_counter(how, data)
|
||
|
|
||
|
@Given("a RSA key pair (.*)")
|
||
|
def set_rsa_key(keyno_str):
|
||
|
scc.keyno = int(keyno_str)
|
||
|
|
||
|
@Given("importing it to the token as OPENPGP.(.*)")
|
||
|
def import_key(openpgp_keyno_str):
|
||
|
openpgp_keyno = int(openpgp_keyno_str)
|
||
|
t = rsa_keys.build_privkey_template(openpgp_keyno, scc.keyno)
|
||
|
scc.result = ftc.token.cmd_put_data_odd(0x3f, 0xff, t)
|
||
|
|
||
|
@When("requesting (.+): ([0-9a-fA-F]+)")
|
||
|
def get_data(name, tag_str):
|
||
|
tag = int(tag_str, 16)
|
||
|
tagh = tag >> 8
|
||
|
tagl = tag & 0xff
|
||
|
scc.result = ftc.token.cmd_get_data(tagh, tagl)
|
||
|
|
||
|
@When("removing a key OPENPGP.(.*)")
|
||
|
def remove_key(openpgp_keyno_str):
|
||
|
openpgp_keyno = int(openpgp_keyno_str)
|
||
|
t = rsa_keys.build_privkey_template_for_remove(openpgp_keyno)
|
||
|
scc.result = ftc.token.cmd_put_data_odd(0x3f, 0xff, t)
|
||
|
|
||
|
@Then("you should get: (.*)")
|
||
|
def check_result(v):
|
||
|
value = ast.literal_eval("'" + v + "'")
|
||
|
assert_equal(scc.result, value)
|
||
|
|
||
|
@Then("it should get success")
|
||
|
def check_success():
|
||
|
assert_equal(scc.result, True)
|
||
|
|
||
|
@Then("you should get NULL")
|
||
|
def check_null():
|
||
|
assert_equal(scc.result, "")
|
||
|
|
||
|
@Then("data should match: (.*)")
|
||
|
def check_regexp(re):
|
||
|
assert_regexp_matches(scc.result, re)
|