关于在TEE环境下,无法使用htobe64函数的问题

在TEE环境下,o可能由于安全问题,无法使用htobe64函数,所以使用另一种方式来完成这个函数的转换功能:

#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;

static uint32_t convert_x(uint32_t x)
{
    return x>>24 | x>>8&0xff00 | x<<8&0xff0000 | x<<24;
}
//这个函数完成和htobe64一样的功能
static uint64_t convert(uint64_t x)
{
    return convert_x(x)+0ULL<<32 | convert_x(x>>32);
}
int main()
{
    struct timespec ts;
        clock_gettime(CLOCK_MONOTONIC, &ts);
        uint64_t times = (uint64_t)((uint64_t)ts.tv_sec * 1000 + ts.tv_nsec / 1000000);
        uint64_t timestamp =
            htobe64(times);
        unsigned char out[8]={0};
        printf("times-->%"PRIu64"\n",convert(times));
        printf("timestamp-->%"PRIu64"\n",timestamp);
        printf("timestampqq-->%"PRIu64"\n",htobe64((uint64_t)ts.tv_sec * 1000 + ts.tv_nsec / 1000000));
    return 0;
}


你可能感兴趣的:(指纹开发,Android开发总结,htobe64)