import pytest
from cryptoauthlib import *
from cryptoauthlib.library import load_cryptoauthlib, get_size_by_name
from cryptoauthlib_mock import atcab_mock
@pytest.fixture
def test_tng_init():
load_cryptoauthlib(atcab_mock())
@pytest.fixture
def test_tng_init_lib(test_init_with_lib):
load_cryptoauthlib()
@pytest.fixture
def test_tng_init_live(test_init_with_device):
load_cryptoauthlib()
if Status.ATCA_SUCCESS != atcab_init(cfg_ateccx08a_kithid_default()):
raise Exception('Unable to connect to a device')
def test_tng_get_type(test_tng_init):
tng_type = AtcaReference(tng_type_t.TNGTYPE_UNKNOWN)
assert tng_get_type(tng_type) == Status.ATCA_SUCCESS
assert tng_type.value == atcab_mock.r_tng_type.value
def test_tng_get_device_pubkey(test_tng_init):
public_key = bytearray(64)
assert tng_get_device_pubkey(public_key) == Status.ATCA_SUCCESS
assert public_key == bytearray(atcab_mock.r_genkey_pubkey)
def test_tng_atcacert_max_device_cert_size(test_tng_init):
max_cert_size = AtcaReference(0)
assert tng_atcacert_max_device_cert_size(max_cert_size) == CertStatus.ATCACERT_E_SUCCESS
assert max_cert_size.value == atcab_mock.r_max_cert_size.value
def test_tng_atcacert_read_device_cert_no_signer(test_tng_init):
cert = bytearray(1024)
cert_size = AtcaReference(len(cert))
assert tng_atcacert_read_device_cert(cert, cert_size) == CertStatus.ATCACERT_E_SUCCESS
assert cert_size.value == atcab_mock.r_cert_size.value
assert cert == bytearray(atcab_mock.r_cert)
def test_tng_atcacert_read_device_cert_signer(test_tng_init):
cert = bytearray(1024)
cert_size = AtcaReference(len(cert))
signer_cert = bytes(512)
assert tng_atcacert_read_device_cert(cert, cert_size, signer_cert) == CertStatus.ATCACERT_E_SUCCESS
assert cert_size.value == atcab_mock.r_cert_size.value
assert cert == bytearray(atcab_mock.r_cert)
def test_tng_atcacert_device_public_key_no_cert(test_tng_init):
public_key = bytearray(64)
assert tng_atcacert_device_public_key(public_key) == CertStatus.ATCACERT_E_SUCCESS
assert public_key == bytearray(atcab_mock.r_genkey_pubkey)
def test_tng_atcacert_device_public_key_cert(test_tng_init):
public_key = bytearray(64)
cert = bytes(512)
assert tng_atcacert_device_public_key(public_key, cert) == CertStatus.ATCACERT_E_SUCCESS
assert public_key == bytearray(atcab_mock.r_genkey_pubkey)
def test_tng_atcacert_max_signer_cert_size(test_tng_init):
max_cert_size = AtcaReference(0)
assert tng_atcacert_max_signer_cert_size(max_cert_size) == CertStatus.ATCACERT_E_SUCCESS
assert max_cert_size.value == atcab_mock.r_max_cert_size.value
def test_tng_atcacert_read_device_cert(test_tng_init):
cert = bytearray(1024)
cert_size = AtcaReference(len(cert))
assert tng_atcacert_read_signer_cert(cert, cert_size) == CertStatus.ATCACERT_E_SUCCESS
assert cert_size.value == atcab_mock.r_cert_size.value
assert cert == bytearray(atcab_mock.r_cert)
def test_tng_atcacert_signer_public_key_no_cert(test_tng_init):
public_key = bytearray(64)
assert tng_atcacert_signer_public_key(public_key) == CertStatus.ATCACERT_E_SUCCESS
assert public_key == bytearray(atcab_mock.r_genkey_pubkey)
def test_tng_atcacert_signer_public_key_cert(test_tng_init):
public_key = bytearray(64)
cert = bytes(512)
assert tng_atcacert_signer_public_key(public_key, cert) == CertStatus.ATCACERT_E_SUCCESS
assert public_key == bytearray(atcab_mock.r_genkey_pubkey)
def test_tng_atcacert_root_cert_size(test_tng_init):
cert_size = AtcaReference(0)
assert tng_atcacert_root_cert_size(cert_size) == CertStatus.ATCACERT_E_SUCCESS
assert cert_size.value == atcab_mock.r_cert_size.value
def test_tng_atcacert_root_cert(test_tng_init):
cert = bytearray(1024)
cert_size = AtcaReference(len(cert))
assert tng_atcacert_root_cert(cert, cert_size) == CertStatus.ATCACERT_E_SUCCESS
assert cert_size.value == atcab_mock.r_cert_size.value
assert cert == bytearray(atcab_mock.r_cert)
def test_tng_atcacert_root_public_key(test_tng_init):
public_key = bytearray(64)
assert tng_atcacert_root_public_key(public_key) == CertStatus.ATCACERT_E_SUCCESS
assert public_key == bytearray(atcab_mock.r_genkey_pubkey)