A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/constant__time_8c_source.html below:

NCBI C++ ToolKit: src/connect/mbedtls/constant_time.c Source File

24 #if !defined(MBEDTLS_CT_ASM) 43 #if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) && \ 44  ((defined(MBEDTLS_CT_ARM_ASM) && (UINTPTR_MAX == 0xfffffffful)) || \ 45  defined(MBEDTLS_CT_AARCH64_ASM)) 47 #define MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS 49 static inline uint32_t

mbedtls_get_unaligned_volatile_uint32(

volatile const unsigned char

*p)

56 #if defined(MBEDTLS_CT_ARM_ASM) 57  asm volatile

(

"ldr %0, [%1]"

:

"=r"

(

r

) :

"r"

(p) :);

58 #elif defined(MBEDTLS_CT_AARCH64_ASM) 59  asm volatile

(

"ldr %w0, [%1]"

:

"=r"

(

r

) : MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT(p) :);

61 #error "No assembly defined for mbedtls_get_unaligned_volatile_uint32" 79  volatile const unsigned char

*

A

= (

volatile const unsigned char

*)

a

;

80  volatile const unsigned char

*

B

= (

volatile const unsigned char

*)

b

;

83 #if defined(MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS) 84  for

(; (

i

+ 4) <=

n

;

i

+= 4) {

85  uint32_t

x = mbedtls_get_unaligned_volatile_uint32(

A

+

i

);

86  uint32_t

y = mbedtls_get_unaligned_volatile_uint32(

B

+

i

);

91  for

(;

i

<

n

;

i

++) {

95  unsigned char

x =

A

[

i

], y =

B

[

i

];

100 #if (INT_MAX < INT32_MAX) 106 #error "mbedtls_ct_memcmp() requires minimum 32-bit ints" 115  return

(

int

) ((diff & 0xffff) | (diff >> 16));

119 #if defined(MBEDTLS_NIST_KW_C) 127  unsigned int

diff = 0;

129  volatile const unsigned char

*

A

= (

volatile const unsigned char

*)

a

;

130  volatile const unsigned char

*

B

= (

volatile const unsigned char

*)

b

;

132  size_t

valid_end =

n

- skip_tail;

134  for

(

size_t i

= 0;

i

<

n

;

i

++) {

135  unsigned char

x =

A

[

i

], y =

B

[

i

];

136  unsigned int

d = x ^ y;

149 #if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT) 153  volatile unsigned char

*

buf

= start;

154  for

(

size_t i

= 0;

i

< total;

i

++) {

159  for

(

size_t n

= 0;

n

< total - 1;

n

++) {

160  unsigned char

current =

buf

[

n

];

172  const unsigned char

*src1,

173  const unsigned char

*src2,

176 #if defined(MBEDTLS_CT_SIZE_64) 195 #if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) 196 #if defined(MBEDTLS_CT_SIZE_64) 197  for

(; (

i

+ 8) <=

len

;

i

+= 8) {

203  for

(; (

i

+ 4) <=

len

;

i

+= 4) {

210  for

(;

i

<

len

;

i

++) {

211

dest[

i

] = (src1[

i

] &

mask

) | (src2[

i

] & not_mask);

216  const unsigned char

*src,

224  for

(offsetval = offset_min; offsetval <= offset_max; offsetval++) {

230 #if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT) 237 #if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) 238  for

(; (

i

+ 4) <=

len

;

i

+= 4) {

243  for

(;

i

<

len

;

i

++) {

static void mbedtls_put_unaligned_uint32(void *p, uint32_t x)

Write the unsigned 32 bits integer to the given address, which need not be aligned.

static uint64_t mbedtls_get_unaligned_uint64(const void *p)

Read the unsigned 64 bits integer from the given address, which need not be aligned.

static uint32_t mbedtls_get_unaligned_uint32(const void *p)

Read the unsigned 32 bits integer from the given address, which need not be aligned.

static void mbedtls_put_unaligned_uint64(void *p, uint64_t x)

Write the unsigned 64 bits integer to the given address, which need not be aligned.

ncbi::TMaskedQueryRegions mask

int mbedtls_ct_memcmp(const void *a, const void *b, size_t n)

Constant-time functions.

void mbedtls_ct_memcpy_if(mbedtls_ct_condition_t condition, unsigned char *dest, const unsigned char *src1, const unsigned char *src2, size_t len)

Conditional memcpy.

volatile mbedtls_ct_uint_t mbedtls_ct_zero

Constant-time functions.

void mbedtls_ct_memcpy_offset(unsigned char *dest, const unsigned char *src, size_t offset, size_t offset_min, size_t offset_max, size_t len)

Copy data from a secret position.

static mbedtls_ct_uint_t mbedtls_ct_compiler_opaque(mbedtls_ct_uint_t x)

Ensure that a value cannot be known at compile time.

static mbedtls_ct_condition_t mbedtls_ct_uint_ge(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)

static mbedtls_ct_condition_t mbedtls_ct_uint_lt(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)

static mbedtls_ct_condition_t mbedtls_ct_bool_and(mbedtls_ct_condition_t x, mbedtls_ct_condition_t y)

static unsigned mbedtls_ct_uint_if(mbedtls_ct_condition_t condition, unsigned if1, unsigned if0)

static mbedtls_ct_condition_t mbedtls_ct_uint_gt(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)

static mbedtls_ct_condition_t mbedtls_ct_uint_eq(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)

static unsigned mbedtls_ct_uint_if_else_0(mbedtls_ct_condition_t condition, unsigned if1)

size_t mbedtls_ct_condition_t

Constant-time functions.

static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)

#define mbedtls_ct_memcmp_partial

#define mbedtls_ct_memmove_left

#define mbedtls_ct_zeroize_if

double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)

Common and shared functions used by multiple modules in the Mbed TLS library.

Error to string translation.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4