Fix for Zephyr TimeNowInMilliseconds. Resolves issue with TLS v1.3 server and session tickets time (uptime in sim < 1000 ms was being made 0).

This commit is contained in:
David Garske
2024-03-15 14:01:59 -07:00
parent 737fa53636
commit 85c22abe4e
3 changed files with 15 additions and 6 deletions

View File

@ -9768,7 +9768,12 @@ ProtocolVersion MakeDTLSv1_3(void)
word32 LowResTimer(void)
{
return k_uptime_get() / 1000;
int64_t t;
#if defined(CONFIG_ARCH_POSIX)
k_cpu_idle();
#endif
t = k_uptime_get(); /* returns current uptime in milliseconds */
return (word32)(t / 1000);
}
#elif defined(WOLFSSL_LINUXKM)

View File

@ -1910,10 +1910,12 @@ end:
#elif defined(WOLFSSL_ZEPHYR)
word32 TimeNowInMilliseconds(void)
{
int64_t t;
#if defined(CONFIG_ARCH_POSIX)
k_cpu_idle();
#endif
return (word32)k_uptime_get() / 1000;
t = k_uptime_get(); /* returns current uptime in milliseconds */
return (word32)t;
}
#else
@ -2201,10 +2203,12 @@ end:
#elif defined(WOLFSSL_ZEPHYR)
sword64 TimeNowInMilliseconds(void)
{
int64_t t;
#if defined(CONFIG_ARCH_POSIX)
k_cpu_idle();
#endif
return (sword64)k_uptime_get() / 1000;
t = k_uptime_get(); /* returns current uptime in milliseconds */
return (sword64)t;
}
#else

View File

@ -12998,13 +12998,13 @@ void bench_sphincsKeySign(byte level, byte optim)
double current_time(int reset)
{
int64_t t;
(void)reset;
#if defined(CONFIG_ARCH_POSIX)
k_cpu_idle();
#endif
return (double)k_uptime_get() / 1000;
t = k_uptime_get(); /* returns current uptime in milliseconds */
return (double)(t / 1000);
}
#elif defined(WOLFSSL_NETBURNER)