mbedTLS
mbedtls_mpi_mul_mpi()
is only used within mbedTLS.
Symbol previews are coming soon...
Symbols
loading...
Files
loading...
CodeScope
STM32 Libraries and Samples
mbedTLS
mbedtls_mpi_mul_mpi()
mbedtls_mpi_mul_mpi() function
Perform a multiplication of two MPIs: X = A * B
Syntax
from
bignum.h:672
int
mbedtls_mpi_mul_mpi
(
mbedtls_mpi
*
X
,
const
mbedtls_mpi
*
A
,
const
mbedtls_mpi
*
B
)
;
Implemented in
bignum.c:1393
Arguments
X
The destination MPI. This must point to an initialized MPI.
A
The first factor. This must point to an initialized MPI.
B
The second factor. This must point to an initialized MPI.
Return value
\c 0 if successful. #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. Another negative error code on different kinds of failure.
References
Location
Referrer
Text
bignum.c:1393
int
mbedtls_mpi_mul_mpi
(
mbedtls_mpi
*
X
,
const
mbedtls_mpi
*
A
,
const
mbedtls_mpi
*
B
)
bignum.h:672
int
mbedtls_mpi_mul_mpi
(
mbedtls_mpi
*
X
,
const
mbedtls_mpi
*
A
,
bignum.c:1445
mbedtls_mpi_mul_int()
return
(
mbedtls_mpi_mul_mpi
(
X
,
A
,
&
_B
)
)
;
ecdsa.c:357
ecdsa_sign_restartable()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
s
,
pr
,
d
)
)
;
ecdsa.c:359
ecdsa_sign_restartable()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
e
,
&
e
,
&
t
)
)
;
ecdsa.c:360
ecdsa_sign_restartable()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
pk
,
pk
,
&
t
)
)
;
ecdsa.c:362
ecdsa_sign_restartable()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
s
,
s
,
&
e
)
)
;
ecdsa.c:545
ecdsa_verify_restartable()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
pu1
,
&
e
,
&
s_inv
)
)
;
ecdsa.c:548
ecdsa_verify_restartable()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
pu2
,
r
,
&
s_inv
)
)
;
ecp.c:1105
ecp_normalize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
ZZi
,
&
Zi
,
&
Zi
)
)
;
MOD_MUL
(
ZZi
)
;
ecp.c:1106
ecp_normalize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
pt
->
X
,
&
pt
->
X
,
&
ZZi
)
)
;
MOD_MUL
(
pt
->
X
)
;
ecp.c:1111
ecp_normalize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
pt
->
Y
,
&
pt
->
Y
,
&
ZZi
)
)
;
MOD_MUL
(
pt
->
Y
)
;
ecp.c:1112
ecp_normalize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
pt
->
Y
,
&
pt
->
Y
,
&
Zi
)
)
;
MOD_MUL
(
pt
->
Y
)
;
ecp.c:1166
ecp_normalize_jac_many()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
c
[
i
]
,
&
c
[
i
-
1
]
,
&
T
[
i
]
->
Z
)
)
;
ecp.c:1186
ecp_normalize_jac_many()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
Zi
,
&
u
,
&
c
[
i
-
1
]
)
)
;
MOD_MUL
(
Zi
)
;
ecp.c:1187
ecp_normalize_jac_many()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
u
,
&
u
,
&
T
[
i
]
->
Z
)
)
;
MOD_MUL
(
u
)
;
ecp.c:1193
ecp_normalize_jac_many()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
ZZi
,
&
Zi
,
&
Zi
)
)
;
MOD_MUL
(
ZZi
)
;
ecp.c:1194
ecp_normalize_jac_many()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T
[
i
]
->
X
,
&
T
[
i
]
->
X
,
&
ZZi
)
)
;
MOD_MUL
(
T
[
i
]
->
X
)
;
ecp.c:1195
ecp_normalize_jac_many()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T
[
i
]
->
Y
,
&
T
[
i
]
->
Y
,
&
ZZi
)
)
;
MOD_MUL
(
T
[
i
]
->
Y
)
;
ecp.c:1196
ecp_normalize_jac_many()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T
[
i
]
->
Y
,
&
T
[
i
]
->
Y
,
&
Zi
)
)
;
MOD_MUL
(
T
[
i
]
->
Y
)
;
ecp.c:1282
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
S
,
&
P
->
Z
,
&
P
->
Z
)
)
;
MOD_MUL
(
S
)
;
ecp.c:1285
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
S
,
&
T
,
&
U
)
)
;
MOD_MUL
(
S
)
;
ecp.c:1291
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
S
,
&
P
->
X
,
&
P
->
X
)
)
;
MOD_MUL
(
S
)
;
ecp.c:1298
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
S
,
&
P
->
Z
,
&
P
->
Z
)
)
;
MOD_MUL
(
S
)
;
ecp.c:1299
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T
,
&
S
,
&
S
)
)
;
MOD_MUL
(
T
)
;
ecp.c:1300
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
S
,
&
T
,
&
grp
->
A
)
)
;
MOD_MUL
(
S
)
;
ecp.c:1306
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T
,
&
P
->
Y
,
&
P
->
Y
)
)
;
MOD_MUL
(
T
)
;
ecp.c:1308
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
S
,
&
P
->
X
,
&
T
)
)
;
MOD_MUL
(
S
)
;
ecp.c:1312
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
U
,
&
T
,
&
T
)
)
;
MOD_MUL
(
U
)
;
ecp.c:1316
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T
,
&
M
,
&
M
)
)
;
MOD_MUL
(
T
)
;
ecp.c:1322
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
S
,
&
S
,
&
M
)
)
;
MOD_MUL
(
S
)
;
ecp.c:1326
ecp_double_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
U
,
&
P
->
Y
,
&
P
->
Z
)
)
;
MOD_MUL
(
U
)
;
ecp.c:1390
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T1
,
&
P
->
Z
,
&
P
->
Z
)
)
;
MOD_MUL
(
T1
)
;
ecp.c:1391
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T2
,
&
T1
,
&
P
->
Z
)
)
;
MOD_MUL
(
T2
)
;
ecp.c:1392
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T1
,
&
T1
,
&
Q
->
X
)
)
;
MOD_MUL
(
T1
)
;
ecp.c:1393
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T2
,
&
T2
,
&
Q
->
Y
)
)
;
MOD_MUL
(
T2
)
;
ecp.c:1412
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
Z
,
&
P
->
Z
,
&
T1
)
)
;
MOD_MUL
(
Z
)
;
ecp.c:1413
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T3
,
&
T1
,
&
T1
)
)
;
MOD_MUL
(
T3
)
;
ecp.c:1414
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T4
,
&
T3
,
&
T1
)
)
;
MOD_MUL
(
T4
)
;
ecp.c:1415
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T3
,
&
T3
,
&
P
->
X
)
)
;
MOD_MUL
(
T3
)
;
ecp.c:1417
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
X
,
&
T2
,
&
T2
)
)
;
MOD_MUL
(
X
)
;
ecp.c:1421
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T3
,
&
T3
,
&
T2
)
)
;
MOD_MUL
(
T3
)
;
ecp.c:1422
ecp_add_mixed()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
T4
,
&
T4
,
&
P
->
Y
)
)
;
MOD_MUL
(
T4
)
;
ecp.c:1474
ecp_randomize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
pt
->
Z
,
&
pt
->
Z
,
&
l
)
)
;
MOD_MUL
(
pt
->
Z
)
;
ecp.c:1477
ecp_randomize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
ll
,
&
l
,
&
l
)
)
;
MOD_MUL
(
ll
)
;
ecp.c:1478
ecp_randomize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
pt
->
X
,
&
pt
->
X
,
&
ll
)
)
;
MOD_MUL
(
pt
->
X
)
;
ecp.c:1481
ecp_randomize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
ll
,
&
ll
,
&
l
)
)
;
MOD_MUL
(
ll
)
;
ecp.c:1482
ecp_randomize_jac()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
pt
->
Y
,
&
pt
->
Y
,
&
ll
)
)
;
MOD_MUL
(
pt
->
Y
)
;
ecp.c:2424
ecp_check_pubkey_sw()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
YY
,
&
pt
->
Y
,
&
pt
->
Y
)
)
;
MOD_MUL
(
YY
)
;
ecp.c:2425
ecp_check_pubkey_sw()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
RHS
,
&
pt
->
X
,
&
pt
->
X
)
)
;
MOD_MUL
(
RHS
)
;
ecp.c:2437
ecp_check_pubkey_sw()
MBEDTLS_MPI_CHK
(
mbedtls_mpi_mul_mpi
(
&
RHS
,
&
RHS
,
&
pt
->
X
)
)
;
MOD_MUL
(
RHS
)
;
Call Tree
Functions calling
mbedtls_mpi_mul_mpi()
Functions called by
mbedtls_mpi_mul_mpi()
mbedtls_mpi_mul_int()
ecdsa_sign_restartable()
ecdsa_verify_restartable()
ecp_normalize_jac()
ecp_normalize_jac_many()
ecp_double_jac()
ecp_add_mixed()
ecp_randomize_jac()
ecp_check_pubkey_sw()
all items filtered out
mbedtls_mpi_mul_mpi()
mbedtls_mpi_init()
mbedtls_mpi_free()
mbedtls_mpi_grow()
mbedtls_mpi_copy()
mbedtls_mpi_lset()
mpi_mul_hlp()
all items filtered out
Data read by
mbedtls_mpi_mul_mpi()
Data written by
mbedtls_mpi_mul_mpi()
mbedtls_mpi::s
mbedtls_mpi::n
mbedtls_mpi::p
mbedtls_mpi_mul_mpi()::X
mbedtls_mpi_mul_mpi()::A
mbedtls_mpi_mul_mpi()::B
mbedtls_mpi_mul_mpi()::ret
mbedtls_mpi_mul_mpi()::i
mbedtls_mpi_mul_mpi()::j
all items filtered out
mbedtls_mpi_mul_mpi()
mbedtls_mpi::s
mbedtls_mpi_mul_mpi()::A
mbedtls_mpi_mul_mpi()::B
mbedtls_mpi_mul_mpi()::ret
mbedtls_mpi_mul_mpi()::i
mbedtls_mpi_mul_mpi()::j
all items filtered out
Type of
mbedtls_mpi_mul_mpi()
mbedtls_mpi_mul_mpi()
size_t
mbedtls_mpi
all items filtered out