Moves vendor commands into TockEnv (#614)
This move changes the Env trait: It removes all functionality that is used only in vendor commands (`FirmwareProtection`, `UpgradeStorage`) and adds a function to call when parsing CBOR commands. The abstraction necessary to test these commands is instead realized through compile flags. The mock upgrade storage is active when compiled for std for example.
This commit is contained in:
@@ -12,11 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use crate::api::crypto::EC_FIELD_SIZE;
|
||||
use crate::env::Env;
|
||||
use alloc::vec::Vec;
|
||||
use persistent_store::{StoreError, StoreUpdate};
|
||||
|
||||
use crate::env::Env;
|
||||
|
||||
/// Identifies an attestation.
|
||||
#[derive(Clone, PartialEq, Eq)]
|
||||
pub enum Id {
|
||||
@@ -27,7 +27,7 @@ pub enum Id {
|
||||
#[cfg_attr(feature = "std", derive(Debug, PartialEq, Eq))]
|
||||
pub struct Attestation {
|
||||
/// ECDSA private key (big-endian).
|
||||
pub private_key: [u8; 32],
|
||||
pub private_key: [u8; EC_FIELD_SIZE],
|
||||
pub certificate: Vec<u8>,
|
||||
}
|
||||
|
||||
@@ -65,11 +65,11 @@ pub fn helper_get(env: &mut impl Env) -> Result<Option<Attestation>, Error> {
|
||||
(None, None) => return Ok(None),
|
||||
_ => return Err(Error::Internal),
|
||||
};
|
||||
if private_key.len() != 32 {
|
||||
if private_key.len() != EC_FIELD_SIZE {
|
||||
return Err(Error::Internal);
|
||||
}
|
||||
Ok(Some(Attestation {
|
||||
private_key: *array_ref![private_key, 0, 32],
|
||||
private_key: *array_ref![private_key, 0, EC_FIELD_SIZE],
|
||||
certificate,
|
||||
}))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user