taler-xotp_fw

xOTP generator firmware
Log | Files | Refs | Submodules | README

xtotpUtil.c (1409B)


      1 /**
      2  * @file xtotpUtil.c
      3  * @author Adrian STEINER (steia19@bfh.ch)
      4  * @brief Includes some help functions and important defines
      5  * @version 0.1
      6  * @date 27-02-2025
      7  *
      8  * @copyright (C) 2025 Adrian STEINER
      9  * This program is free software: you can redistribute it and/or modify
     10  * it under the terms of the GNU General Public License as published by
     11  * the Free Software Foundation, either version 3 of the License, or
     12  * (at your option) any later version.
     13  *
     14  * This program is distributed in the hope that it will be useful,
     15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17  * GNU General Public License for more details.
     18  *
     19  * You should have received a copy of the GNU General Public License
     20  * along with this program.  If not, see <https: //www.gnu.org/licenses/>.
     21  *
     22  */
     23 
     24 #include "xtotpUtil.h"
     25 
     26 #include <time.h>
     27 
     28 uint32_t power10(const uint8_t exponent) {
     29   uint32_t result = 1;
     30   for (uint8_t i = 0; i < exponent; i++) {
     31     result *= 10;
     32   }
     33   return result;
     34 }
     35 uint8_t base10Exponent(uint32_t number) {
     36   uint8_t exponent = 0;
     37   while (number / 10 != 0) {
     38     number /= 10;
     39     exponent++;
     40   }
     41   return exponent;
     42 }
     43 
     44 uint32_t getTickDiff(uint32_t newTick, uint32_t oldTick) {
     45   // Check no overflow
     46   if (newTick >= oldTick) {
     47     return newTick - oldTick;
     48   } else {
     49     return UINT32_MAX - oldTick + newTick;
     50   }
     51 }