1 /*
2  * Copyright 2015 The Chromium OS Authors. All rights reserved.
3  * Use of this source code is governed by a BSD-style license that can be
4  * found in the LICENSE file.
5  */
6 
7 #ifndef __TPM2_MATHFUNCTIONS_FP_H
8 #define __TPM2_MATHFUNCTIONS_FP_H
9 
10 LIB_EXPORT int _math__Comp(const UINT32 aSize,  //   IN:   size of a
11                            const BYTE *a,       //   IN:   a buffer
12                            const UINT32 bSize,  //   IN:   size of b
13                            const BYTE *b        //   IN:   b buffer
14                            );
15 LIB_EXPORT CRYPT_RESULT _math__Div(const TPM2B *n,  //   IN: numerator
16                                    const TPM2B *d,  //   IN: denominator
17                                    TPM2B *q,        //   OUT: quotient
18                                    TPM2B *r         //   OUT: remainder
19                                    );
20 LIB_EXPORT BOOL _math__IsPrime(const UINT32 prime);
21 LIB_EXPORT CRYPT_RESULT
22 _math__ModExp(UINT32 cSize,        //   IN: size of the result
23               BYTE *c,             //   OUT: results buffer
24               const UINT32 mSize,  //   IN: size of number to be exponentiated
25               const BYTE *m,       //   IN: number to be exponentiated
26               const UINT32 eSize,  //   IN: size of power
27               const BYTE *e,       //   IN: power
28               const UINT32 nSize,  //   IN: modulus size
29               const BYTE *n        //   IN: modulu
30               );
31 LIB_EXPORT UINT16 _math__Normalize2B(TPM2B *b  // IN/OUT: number to normalize
32                                      );
33 LIB_EXPORT int _math__sub(const UINT32 aSize,  //   IN: size   of a
34                           const BYTE *a,       //   IN: a
35                           const UINT32 bSize,  //   IN: size   of b
36                           const BYTE *b,       //   IN: b
37                           UINT16 *cSize,  //   OUT: set   to MAX(aSize, bSize)
38                           BYTE *c         //   OUT: the   difference
39                           );
40 LIB_EXPORT int _math__uComp(const UINT32 aSize,  // IN: size of a
41                             const BYTE *a,       // IN: a
42                             const UINT32 bSize,  // IN: size of b
43                             const BYTE *b        // IN: b
44                             );
45 
46 #endif  // __TPM2_MATHFUNCTIONS_FP_H
47