Skip to content

Commit

Permalink
formatting, restructuring
Browse files Browse the repository at this point in the history
  • Loading branch information
mkv-vcm committed Nov 30, 2021
1 parent 91c144e commit cb3719f
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 32 deletions.
18 changes: 9 additions & 9 deletions src/securityPolicy.c
Expand Up @@ -549,13 +549,13 @@ security_policy_t policyForSignTxCertificateStaking(
}
break;

case STAKE_CREDENTIAL_SCRIPT_HASH:
case STAKE_CREDENTIAL_KEY_HASH:
switch (txSigningMode) {
case SIGN_TX_SIGNINGMODE_MULTISIG_TX:
case SIGN_TX_SIGNINGMODE_PLUTUS_TX:
break;

case SIGN_TX_SIGNINGMODE_ORDINARY_TX:
case SIGN_TX_SIGNINGMODE_MULTISIG_TX:
DENY();
break;

Expand All @@ -565,13 +565,13 @@ security_policy_t policyForSignTxCertificateStaking(
}
break;

case STAKE_CREDENTIAL_KEY_HASH:
case STAKE_CREDENTIAL_SCRIPT_HASH:
switch (txSigningMode) {
case SIGN_TX_SIGNINGMODE_MULTISIG_TX:
case SIGN_TX_SIGNINGMODE_PLUTUS_TX:
break;

case SIGN_TX_SIGNINGMODE_ORDINARY_TX:
case SIGN_TX_SIGNINGMODE_MULTISIG_TX:
DENY();
break;

Expand Down Expand Up @@ -800,38 +800,38 @@ security_policy_t policyForSignTxWithdrawal(
}
break;

case STAKE_CREDENTIAL_SCRIPT_HASH:
case STAKE_CREDENTIAL_KEY_HASH:
switch (txSigningMode) {
case SIGN_TX_SIGNINGMODE_MULTISIG_TX:
case SIGN_TX_SIGNINGMODE_PLUTUS_TX:
SHOW();
break;

case SIGN_TX_SIGNINGMODE_ORDINARY_TX:
case SIGN_TX_SIGNINGMODE_MULTISIG_TX:
DENY();
break;

default:
ASSERT(false);
break;
}
break;

case STAKE_CREDENTIAL_KEY_HASH:
case STAKE_CREDENTIAL_SCRIPT_HASH:
switch (txSigningMode) {
case SIGN_TX_SIGNINGMODE_MULTISIG_TX:
case SIGN_TX_SIGNINGMODE_PLUTUS_TX:
SHOW();
break;

case SIGN_TX_SIGNINGMODE_ORDINARY_TX:
case SIGN_TX_SIGNINGMODE_MULTISIG_TX:
DENY();
break;

default:
ASSERT(false);
break;
}
break;

default:
ASSERT(false);
Expand Down
30 changes: 20 additions & 10 deletions src/signTx.c
Expand Up @@ -356,7 +356,7 @@ static inline void checkForFinishedSubmachines()
// ============================== INIT ==============================

enum {
HANDLE_INIT_STEP_PROMPT_TYPE = 100,
HANDLE_INIT_STEP_PROMPT_SIGNINGMODE = 100,
HANDLE_INIT_STEP_DISPLAY_NETWORK_DETAILS,
HANDLE_INIT_STEP_SCRIPT_RUNNING_WARNING,
HANDLE_INIT_STEP_NO_COLLATERALS_WARNING,
Expand All @@ -382,9 +382,14 @@ static void signTx_handleInit_ui_runStep()

UI_STEP_BEGIN(ctx->ui_step, this_fn);

UI_STEP(HANDLE_INIT_STEP_PROMPT_TYPE) {
char bodyTxt[SIZEOF("Pool operator") + 1 + SIZEOF("transaction?") + 1];
snprintf(bodyTxt, SIZEOF(bodyTxt), "%s transaction?", ((const char*)PIC(uiSigningModeName[ctx->commonTxData.txSigningMode - SIGN_TX_SIGNINGMODE_ORDINARY_TX])));
UI_STEP(HANDLE_INIT_STEP_PROMPT_SIGNINGMODE) {
char bodyTxt[SIZEOF("Pool operator") + 1 + SIZEOF("transaction?") + 1 + 1];
const uint32_t signingModeStrIndex = ctx->commonTxData.txSigningMode - SIGN_TX_SIGNINGMODE_ORDINARY_TX;
ASSERT(signingModeStrIndex < ARRAY_LEN(uiSigningModeName));
snprintf(bodyTxt, SIZEOF(bodyTxt), "%s transaction?", ((const char*)PIC(uiSigningModeName[signingModeStrIndex])));
// Make sure we have space after, so we know snprintf didn't truncate the text
// snprintf's return value cannot be trusted with this SDK
ASSERT(strlen(bodyTxt) < SIZEOF(bodyTxt) - 1);
ui_displayPrompt(
"Start new",
bodyTxt,
Expand All @@ -394,8 +399,11 @@ static void signTx_handleInit_ui_runStep()
}

UI_STEP(HANDLE_INIT_STEP_DISPLAY_NETWORK_DETAILS) {
if (!(ctx->commonTxData.networkId != MAINNET_NETWORK_ID && ctx->commonTxData.networkId != TESTNET_NETWORK_ID)
|| ctx->commonTxData.protocolMagic != MAINNET_PROTOCOL_MAGIC) {
const bool usualNetworkId = ctx->commonTxData.networkId == MAINNET_NETWORK_ID || ctx->commonTxData.networkId == TESTNET_NETWORK_ID;
const bool usualProtocolMagic = ctx->commonTxData.protocolMagic == MAINNET_PROTOCOL_MAGIC;

if (usualNetworkId && usualProtocolMagic) {
// no need to display the network details
UI_STEP_JUMP(HANDLE_INIT_STEP_SCRIPT_RUNNING_WARNING);
}

Expand All @@ -414,14 +422,16 @@ static void signTx_handleInit_ui_runStep()
}

UI_STEP(HANDLE_INIT_STEP_NO_COLLATERALS_WARNING) {
if (ctx->commonTxData.txSigningMode != SIGN_TX_SIGNINGMODE_PLUTUS_TX || ctx->numCollaterals != 0) {
const bool noCollateralsIsUnusual = ctx->commonTxData.txSigningMode == SIGN_TX_SIGNINGMODE_PLUTUS_TX;
if (!noCollateralsIsUnusual || ctx->numCollaterals > 0) {
UI_STEP_JUMP(HANDLE_INIT_STEP_NO_SCRIPT_DATA_HASH_WARNING);
}
ui_displayPaginatedText("WARNING:", "No collaterals given for Plutus transaction", this_fn);
}

UI_STEP(HANDLE_INIT_STEP_NO_SCRIPT_DATA_HASH_WARNING) {
if (ctx->commonTxData.txSigningMode != SIGN_TX_SIGNINGMODE_PLUTUS_TX || ctx->includeScriptDataHash) {
const bool noScriptDataHashIsUnusual = ctx->commonTxData.txSigningMode == SIGN_TX_SIGNINGMODE_PLUTUS_TX;
if (!noScriptDataHashIsUnusual || ctx->includeScriptDataHash) {
UI_STEP_JUMP(HANDLE_INIT_STEP_RESPOND);
}
ui_displayPaginatedText("WARNING:", "No script data given for Plutus transaction", this_fn);
Expand Down Expand Up @@ -562,8 +572,8 @@ static void signTx_handleInitAPDU(uint8_t p2, uint8_t* wireDataBuffer, size_t wi
// select UI steps
switch (policy) {
# define CASE(POLICY, UI_STEP) case POLICY: {ctx->ui_step=UI_STEP; break;}
CASE(POLICY_PROMPT_WARN_UNUSUAL, HANDLE_INIT_STEP_PROMPT_TYPE);
CASE(POLICY_PROMPT_BEFORE_RESPONSE, HANDLE_INIT_STEP_PROMPT_TYPE);
CASE(POLICY_PROMPT_WARN_UNUSUAL, HANDLE_INIT_STEP_PROMPT_SIGNINGMODE);
CASE(POLICY_PROMPT_BEFORE_RESPONSE, HANDLE_INIT_STEP_PROMPT_SIGNINGMODE);
CASE(POLICY_ALLOW_WITHOUT_PROMPT, HANDLE_INIT_STEP_RESPOND);
# undef CASE
default:
Expand Down
21 changes: 9 additions & 12 deletions src/txHashBuilder.c
Expand Up @@ -169,7 +169,7 @@ void txHashBuilder_addInput(
{
BUILDER_APPEND_CBOR(CBOR_TYPE_ARRAY, 2);
{
ASSERT(utxoHashSize == 32);
ASSERT(utxoHashSize == TX_HASH_LENGTH);
BUILDER_APPEND_CBOR(CBOR_TYPE_BYTES, utxoHashSize);
BUILDER_APPEND_DATA(utxoHashBuffer, utxoHashSize);
}
Expand Down Expand Up @@ -466,15 +466,12 @@ static uint32_t getStakeCredentialSource(const stake_credential_type_t stakeCred
KEY = 0,
SCRIPT = 1
};
switch (stakeCredentialType)
{
switch (stakeCredentialType) {
case STAKE_CREDENTIAL_KEY_PATH:
case STAKE_CREDENTIAL_KEY_HASH:
return KEY;
break;
case STAKE_CREDENTIAL_SCRIPT_HASH:
return SCRIPT;
break;
default:
ASSERT(false);
break;
Expand Down Expand Up @@ -1252,15 +1249,15 @@ void txHashBuilder_addScriptDataHash(
BUILDER_APPEND_CBOR(CBOR_TYPE_BYTES, scriptHashDataSize);
BUILDER_APPEND_DATA(scriptHashData, scriptHashDataSize);
}
builder->state = TX_HASH_BUILDER_IN_SCRIPT_HASH_DATA;
builder->state = TX_HASH_BUILDER_IN_SCRIPT_DATA_HASH;
}

static void txHashBuilder_assertCanLeaveScriptDataHash(tx_hash_builder_t* builder)
{
_TRACE("state = %u", builder->state);

switch (builder->state) {
case TX_HASH_BUILDER_IN_SCRIPT_HASH_DATA:
case TX_HASH_BUILDER_IN_SCRIPT_DATA_HASH:
break;

case TX_HASH_BUILDER_IN_MINT:
Expand All @@ -1285,7 +1282,7 @@ void txHashBuilder_enterCollaterals(tx_hash_builder_t* builder)

txHashBuilder_assertCanLeaveScriptDataHash(builder);
{
// Enter inputs
// Enter collateral inputs
BUILDER_APPEND_CBOR(CBOR_TYPE_UNSIGNED, TX_BODY_KEY_COLLATERALS);
BUILDER_APPEND_CBOR(CBOR_TYPE_ARRAY, builder->remainingCollaterals);
}
Expand All @@ -1311,7 +1308,7 @@ void txHashBuilder_addCollateral(
{
BUILDER_APPEND_CBOR(CBOR_TYPE_ARRAY, 2);
{
ASSERT(utxoHashSize == 32);
ASSERT(utxoHashSize == TX_HASH_LENGTH);
BUILDER_APPEND_CBOR(CBOR_TYPE_BYTES, utxoHashSize);
BUILDER_APPEND_DATA(utxoHashBuffer, utxoHashSize);
}
Expand All @@ -1330,7 +1327,7 @@ static void txHashBuilder_assertCanLeaveCollaterals(tx_hash_builder_t* builder)
ASSERT(builder->remainingCollaterals == 0);
break;

case TX_HASH_BUILDER_IN_SCRIPT_HASH_DATA:
case TX_HASH_BUILDER_IN_SCRIPT_DATA_HASH:
case TX_HASH_BUILDER_IN_MINT:
case TX_HASH_BUILDER_IN_VALIDITY_INTERVAL_START:
case TX_HASH_BUILDER_IN_AUX_DATA:
Expand All @@ -1352,7 +1349,7 @@ void txHashBuilder_enterRequiredSigners(tx_hash_builder_t* builder)

txHashBuilder_assertCanLeaveCollaterals(builder);
{
// Enter inputs
// Enter required signers
BUILDER_APPEND_CBOR(CBOR_TYPE_UNSIGNED, TX_BODY_KEY_REQUIRED_SIGNERS);
BUILDER_APPEND_CBOR(CBOR_TYPE_ARRAY, builder->remainingRequiredSigners);
}
Expand Down Expand Up @@ -1391,7 +1388,7 @@ static void txHashBuilder_assertCanLeaveRequiredSigners(tx_hash_builder_t* build
break;

case TX_HASH_BUILDER_IN_COLLATERALS:
case TX_HASH_BUILDER_IN_SCRIPT_HASH_DATA:
case TX_HASH_BUILDER_IN_SCRIPT_DATA_HASH:
case TX_HASH_BUILDER_IN_MINT:
case TX_HASH_BUILDER_IN_VALIDITY_INTERVAL_START:
case TX_HASH_BUILDER_IN_AUX_DATA:
Expand Down
2 changes: 1 addition & 1 deletion src/txHashBuilder.h
Expand Up @@ -57,7 +57,7 @@ typedef enum {
TX_HASH_BUILDER_IN_MINT_TOP_LEVEL_DATA = 1010,
TX_HASH_BUILDER_IN_MINT_ASSET_GROUP = 1011,
TX_HASH_BUILDER_IN_MINT_TOKEN = 1012,
TX_HASH_BUILDER_IN_SCRIPT_HASH_DATA = 1100,
TX_HASH_BUILDER_IN_SCRIPT_DATA_HASH = 1100,
TX_HASH_BUILDER_IN_COLLATERALS = 1200,
TX_HASH_BUILDER_IN_REQUIRED_SIGNERS = 1300,
TX_HASH_BUILDER_IN_NETWORK_ID = 1400,
Expand Down

0 comments on commit cb3719f

Please sign in to comment.