Skip to content

Commit

Permalink
* added new command CIDsToBeQueried (#72)
Browse files Browse the repository at this point in the history
* more extensive logging
* changed CID query during PoP to be limited and with more error checks

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
  • Loading branch information
eckelj committed May 29, 2024
1 parent 682fef1 commit 729c4d2
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 6 deletions.
1 change: 1 addition & 0 deletions tasmota/include/i18n.h
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@
#define D_CMND_NOTARIZATION_PERIODICITY "NotarizationPeriodicity"
#define D_CMND_NOTARIZE "Notarize"
#define D_CMND_REMOVE_FILES "RemoveFiles"
#define D_CMND_CIDSTOBEQUERIED "CIDsToBeQueried"
#define D_CMND_STATUS "Status"
#define D_STATUS1_PARAMETER "PRM"
#define D_STATUS2_FIRMWARE "FWR"
Expand Down
2 changes: 1 addition & 1 deletion tasmota/include/tasmota.h
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ enum SettingsTextIndex { SET_OTAURL,
SET_SHD_PARAM,
SET_RGX_SSID, SET_RGX_PASSWORD,
SET_INFLUXDB_HOST, SET_INFLUXDB_PORT, SET_INFLUXDB_ORG, SET_INFLUXDB_TOKEN, SET_INFLUXDB_BUCKET, SET_INFLUXDB_RP,
SET_PLANETMINT_API, SET_PLANETMINT_CHAINID, SET_PLANETMINT_DENOM, SET_NOTARIZTATION_PERIODICITY,
SET_PLANETMINT_API, SET_PLANETMINT_CHAINID, SET_PLANETMINT_DENOM, SET_NOTARIZTATION_PERIODICITY, fSET_CIDS_TO_BE_QUERIED,
SET_MAX };

enum SpiInterfaces { SPI_NONE, SPI_MOSI, SPI_MISO, SPI_MOSI_MISO };
Expand Down
2 changes: 1 addition & 1 deletion tasmota/tasmota_support/settings.ino
Original file line number Diff line number Diff line change
Expand Up @@ -1392,7 +1392,7 @@ void SettingsDefaultSet2(void) {
SettingsUpdateText( SET_PLANETMINT_CHAINID, "planetmint-testnet-1");
SettingsUpdateText( SET_PLANETMINT_DENOM, "plmnt");
SettingsUpdateText( SET_NOTARIZTATION_PERIODICITY, "3600");

SettingsUpdateText( SET_CIDS_TO_BE_QUERIED, "2");
}

void SettingsDefaultSet3(void) {
Expand Down
15 changes: 13 additions & 2 deletions tasmota/tasmota_support/support_command.ino
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ const char kTasmotaCommands[] PROGMEM = "|" // No prefix
D_CMND_BALANCE "|" D_CMND_RESOLVEID "|" D_CMND_PLANETMINTDENOM "|" D_CMND_GETACCOUNTID "|"
D_CMND_PLANETMINTCHAINID "|" D_CMND_MACHINEDATA "|" D_CMND_POPCHALLENGE "|" D_CMND_ATTESTMACHINE "|"
D_CMND_NOTARIZATION_PERIODICITY "|" D_CMND_NOTARIZE "|" D_CMND_REMOVE_FILES "|" D_CMND_POPINIT "|"
D_CMND_CHALLENGE "|" D_CMND_POPCHALLENGERESULT "|" D_CMND_REDEEMCLAIMS "|" D_CMND_CREATEACCOUNT "|"
D_CMND_CHALLENGE "|" D_CMND_POPCHALLENGERESULT "|" D_CMND_REDEEMCLAIMS "|" D_CMND_CREATEACCOUNT "|" D_CMND_CIDSTOBEQUERIED "|"
#ifdef USE_I2C
D_CMND_I2CSCAN "|" D_CMND_I2CDRIVER "|"
#endif
Expand Down Expand Up @@ -92,7 +92,7 @@ void (* const TasmotaCommand[])(void) PROGMEM = {
&CmndBalance, &CmdResolveCid, &CmndPlanetmintDenom, &CmndGetAccountID,
&CmndPlanetmintChainID, &CmndMachineData, &CmndPoPChallenge, &CmndAttestMachine,
&CmndNotarizationPeriodicity, &CmndNotarize, &CmndRemoveFiles, &CmndPoPInit,
&CmndChallenge, &CmndPoPChallengeResult, &CmndRedeemClaims, &CmndCreateAccount,
&CmndChallenge, &CmndPoPChallengeResult, &CmndRedeemClaims, &CmndCreateAccount, &CmndCIDsToBeQueried,
#ifdef USE_I2C
&CmndI2cScan, &CmndI2cDriver,
#endif
Expand Down Expand Up @@ -1157,7 +1157,18 @@ void CmndCreateAccount(void) {
ResponseClear();
}

void CmndCIDsToBeQueried(void) {
if( XdrvMailbox.data_len ) {
//verify convertibility
uint32_t value = (uint32_t)atoi(sdkGetSetting( SET_CIDS_TO_BE_QUERIED));
sdkSetSetting( SET_CIDS_TO_BE_QUERIED, XdrvMailbox.data);
}

Response_P( "{ \"%s\": \"%s\" }", D_CMND_CIDSTOBEQUERIED, sdkGetSetting( SET_CIDS_TO_BE_QUERIED) );

CmndStatusResponse(40);
ResponseClear();
}

void CmndStatus(void)
{
Expand Down
7 changes: 6 additions & 1 deletion tasmota/tasmota_xdrv_driver/xdrv_129_rddl_network.ino
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,12 @@ void InitializePoPWorkflow(){
AddLog(2, "PoP: initialize PoP challenge");

// select CID
char* cid = getCIDofChallengee();
uint32_t cidsToBeQueried = (uint32_t)atoi(sdkGetSetting( SET_CIDS_TO_BE_QUERIED));
char* cid = getCIDofChallengee( cidsToBeQueried );
if( cid == NULL ){
AddLog(2, "{ \"PoP\": no cid retrieved }");
return;
}
AddLog(2, "PoP: CID to be challenged %s", cid );
bool result = ChallengeChallengee( cid, NULL);
if( result )
Expand Down

0 comments on commit 729c4d2

Please sign in to comment.