Document and test aliasing of output for mbedtls_mpi_core_montmul()
Signed-off-by: Tom Cosgrove <tom.cosgrove@arm.com>
diff --git a/library/bignum_core.h b/library/bignum_core.h
index adfb81a..3a2d5a1 100644
--- a/library/bignum_core.h
+++ b/library/bignum_core.h
@@ -245,6 +245,14 @@
/**
* \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36)
*
+ * \p X may be aliased to \p A or \p N, or even \p B (if \p AN_limbs ==
+ * \p B_limbs) but may not overlap any parameters otherwise.
+ *
+ * \p A, \p B and \p N must not alias or overlap each other in any way, even
+ * if \p AN_limbs == \p B_limbs.
+ *
+ * \p A and \p B must be in canonical form: that is, <= \p N.
+ *
* \param[out] X The destination MPI, as a little-endian array of
* length \p AN_limbs.
* On successful completion, X contains the result of