rust_cryptoauthlib/hw_impl/
c2rust.rs

1use super::{AtcaDeviceType, AtcaStatus};
2use std::convert::From;
3
4impl From<cryptoauthlib_sys::ATCA_STATUS> for AtcaStatus {
5    fn from(atca_status: cryptoauthlib_sys::ATCA_STATUS) -> Self {
6        match atca_status {
7            cryptoauthlib_sys::ATCA_STATUS_ATCA_SUCCESS => AtcaStatus::AtcaSuccess,
8            cryptoauthlib_sys::ATCA_STATUS_ATCA_CONFIG_ZONE_LOCKED => {
9                AtcaStatus::AtcaConfigZoneLocked
10            }
11            cryptoauthlib_sys::ATCA_STATUS_ATCA_DATA_ZONE_LOCKED => AtcaStatus::AtcaDataZoneLocked,
12            cryptoauthlib_sys::ATCA_STATUS_ATCA_WAKE_FAILED => AtcaStatus::AtcaWakeFailed,
13            cryptoauthlib_sys::ATCA_STATUS_ATCA_CHECKMAC_VERIFY_FAILED => {
14                AtcaStatus::AtcaCheckMacVerifyFailed
15            }
16            cryptoauthlib_sys::ATCA_STATUS_ATCA_PARSE_ERROR => AtcaStatus::AtcaParseError,
17            cryptoauthlib_sys::ATCA_STATUS_ATCA_STATUS_CRC => AtcaStatus::AtcaStatusCrc,
18            cryptoauthlib_sys::ATCA_STATUS_ATCA_STATUS_UNKNOWN => AtcaStatus::AtcaStatusUnknown,
19            cryptoauthlib_sys::ATCA_STATUS_ATCA_STATUS_ECC => AtcaStatus::AtcaStatusEcc,
20            cryptoauthlib_sys::ATCA_STATUS_ATCA_STATUS_SELFTEST_ERROR => {
21                AtcaStatus::AtcaStatusSelftestError
22            }
23            cryptoauthlib_sys::ATCA_STATUS_ATCA_FUNC_FAIL => AtcaStatus::AtcaFuncFail,
24            cryptoauthlib_sys::ATCA_STATUS_ATCA_GEN_FAIL => AtcaStatus::AtcaGenFail,
25            cryptoauthlib_sys::ATCA_STATUS_ATCA_BAD_PARAM => AtcaStatus::AtcaBadParam,
26            cryptoauthlib_sys::ATCA_STATUS_ATCA_INVALID_ID => AtcaStatus::AtcaInvalidId,
27            cryptoauthlib_sys::ATCA_STATUS_ATCA_INVALID_SIZE => AtcaStatus::AtcaInvalidSize,
28            cryptoauthlib_sys::ATCA_STATUS_ATCA_RX_CRC_ERROR => AtcaStatus::AtcaRxCrcError,
29            cryptoauthlib_sys::ATCA_STATUS_ATCA_RX_FAIL => AtcaStatus::AtcaRxFail,
30            cryptoauthlib_sys::ATCA_STATUS_ATCA_RX_NO_RESPONSE => AtcaStatus::AtcaRxNoResponse,
31            cryptoauthlib_sys::ATCA_STATUS_ATCA_RESYNC_WITH_WAKEUP => {
32                AtcaStatus::AtcaResyncWithWakeup
33            }
34            cryptoauthlib_sys::ATCA_STATUS_ATCA_PARITY_ERROR => AtcaStatus::AtcaParityError,
35            cryptoauthlib_sys::ATCA_STATUS_ATCA_TX_TIMEOUT => AtcaStatus::AtcaTxTimeout,
36            cryptoauthlib_sys::ATCA_STATUS_ATCA_RX_TIMEOUT => AtcaStatus::AtcaRxTimeout,
37            cryptoauthlib_sys::ATCA_STATUS_ATCA_TOO_MANY_COMM_RETRIES => {
38                AtcaStatus::AtcaTooManyCommRetries
39            }
40            cryptoauthlib_sys::ATCA_STATUS_ATCA_SMALL_BUFFER => AtcaStatus::AtcaSmallBuffer,
41            cryptoauthlib_sys::ATCA_STATUS_ATCA_COMM_FAIL => AtcaStatus::AtcaCommFail,
42            cryptoauthlib_sys::ATCA_STATUS_ATCA_TIMEOUT => AtcaStatus::AtcaTimeout,
43            cryptoauthlib_sys::ATCA_STATUS_ATCA_BAD_OPCODE => AtcaStatus::AtcaBadOpcode,
44            cryptoauthlib_sys::ATCA_STATUS_ATCA_WAKE_SUCCESS => AtcaStatus::AtcaWakeSuccess,
45            cryptoauthlib_sys::ATCA_STATUS_ATCA_EXECUTION_ERROR => AtcaStatus::AtcaExecutionError,
46            cryptoauthlib_sys::ATCA_STATUS_ATCA_UNIMPLEMENTED => AtcaStatus::AtcaUnimplemented,
47            cryptoauthlib_sys::ATCA_STATUS_ATCA_ASSERT_FAILURE => AtcaStatus::AtcaAssertFailure,
48            cryptoauthlib_sys::ATCA_STATUS_ATCA_TX_FAIL => AtcaStatus::AtcaTxFail,
49            cryptoauthlib_sys::ATCA_STATUS_ATCA_NOT_LOCKED => AtcaStatus::AtcaNotLocked,
50            cryptoauthlib_sys::ATCA_STATUS_ATCA_NO_DEVICES => AtcaStatus::AtcaNoDevices,
51            cryptoauthlib_sys::ATCA_STATUS_ATCA_HEALTH_TEST_ERROR => {
52                AtcaStatus::AtcaHealthTestError
53            }
54            cryptoauthlib_sys::ATCA_STATUS_ATCA_ALLOC_FAILURE => AtcaStatus::AtcaAllocFailure,
55            cryptoauthlib_sys::ATCA_STATUS_ATCA_USE_FLAGS_CONSUMED => {
56                AtcaStatus::AtcaUseFlagsConsumed
57            }
58            _ => AtcaStatus::AtcaUnknown,
59        }
60    }
61}
62
63impl From<cryptoauthlib_sys::ATCADeviceType> for AtcaDeviceType {
64    fn from(device_type: cryptoauthlib_sys::ATCADeviceType) -> Self {
65        match device_type {
66            cryptoauthlib_sys::ATCADeviceType_ATSHA204A => AtcaDeviceType::ATSHA204A,
67            cryptoauthlib_sys::ATCADeviceType_ATECC108A => AtcaDeviceType::ATECC108A,
68            cryptoauthlib_sys::ATCADeviceType_ATECC508A => AtcaDeviceType::ATECC508A,
69            cryptoauthlib_sys::ATCADeviceType_ATECC608A => AtcaDeviceType::ATECC608A,
70            cryptoauthlib_sys::ATCADeviceType_ATSHA206A => AtcaDeviceType::ATSHA206A,
71            _ => AtcaDeviceType::AtcaDevUnknown,
72        }
73    }
74}