mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-05 02:34:18 +00:00
d2edcad66e
Thanks to Phil Zimmermann for the code and for the license exception we needed to include it. There remains some build system integration work to be done before this code will build properly in the FreeSWITCH tree.
157 lines
4.6 KiB
C
157 lines
4.6 KiB
C
/*
|
|
* Copyright (c) 1995 Colin Plumb. All rights reserved.
|
|
* For licensing and other legal details, see the file legal.c.
|
|
*/
|
|
#ifndef LBN16_H
|
|
#define LBN16_H
|
|
|
|
#include "lbn.h"
|
|
|
|
#ifndef BNWORD16
|
|
#error 16-bit bignum library requires a 16-bit data type
|
|
#endif
|
|
|
|
#ifndef lbnCopy_16
|
|
void lbnCopy_16(BNWORD16 *dest, BNWORD16 const *src, unsigned len);
|
|
#endif
|
|
#ifndef lbnZero_16
|
|
void lbnZero_16(BNWORD16 *num, unsigned len);
|
|
#endif
|
|
#ifndef lbnNeg_16
|
|
void lbnNeg_16(BNWORD16 *num, unsigned len);
|
|
#endif
|
|
|
|
#ifndef lbnAdd1_16
|
|
BNWORD16 lbnAdd1_16(BNWORD16 *num, unsigned len, BNWORD16 carry);
|
|
#endif
|
|
#ifndef lbnSub1_16
|
|
BNWORD16 lbnSub1_16(BNWORD16 *num, unsigned len, BNWORD16 borrow);
|
|
#endif
|
|
|
|
#ifndef lbnAddN_16
|
|
BNWORD16 lbnAddN_16(BNWORD16 *num1, BNWORD16 const *num2, unsigned len);
|
|
#endif
|
|
#ifndef lbnSubN_16
|
|
BNWORD16 lbnSubN_16(BNWORD16 *num1, BNWORD16 const *num2, unsigned len);
|
|
#endif
|
|
|
|
#ifndef lbnCmp_16
|
|
int lbnCmp_16(BNWORD16 const *num1, BNWORD16 const *num2, unsigned len);
|
|
#endif
|
|
|
|
#ifndef lbnMulN1_16
|
|
void lbnMulN1_16(BNWORD16 *out, BNWORD16 const *in, unsigned len, BNWORD16 k);
|
|
#endif
|
|
#ifndef lbnMulAdd1_16
|
|
BNWORD16
|
|
lbnMulAdd1_16(BNWORD16 *out, BNWORD16 const *in, unsigned len, BNWORD16 k);
|
|
#endif
|
|
#ifndef lbnMulSub1_16
|
|
BNWORD16 lbnMulSub1_16(BNWORD16 *out, BNWORD16 const *in, unsigned len, BNWORD16 k);
|
|
#endif
|
|
|
|
#ifndef lbnLshift_16
|
|
BNWORD16 lbnLshift_16(BNWORD16 *num, unsigned len, unsigned shift);
|
|
#endif
|
|
#ifndef lbnDouble_16
|
|
BNWORD16 lbnDouble_16(BNWORD16 *num, unsigned len);
|
|
#endif
|
|
#ifndef lbnRshift_16
|
|
BNWORD16 lbnRshift_16(BNWORD16 *num, unsigned len, unsigned shift);
|
|
#endif
|
|
|
|
#ifndef lbnMul_16
|
|
void lbnMul_16(BNWORD16 *prod, BNWORD16 const *num1, unsigned len1,
|
|
BNWORD16 const *num2, unsigned len2);
|
|
#endif
|
|
#ifndef lbnSquare_16
|
|
void lbnSquare_16(BNWORD16 *prod, BNWORD16 const *num, unsigned len);
|
|
#endif
|
|
|
|
#ifndef lbnNorm_16
|
|
unsigned lbnNorm_16(BNWORD16 const *num, unsigned len);
|
|
#endif
|
|
#ifndef lbnBits_16
|
|
unsigned lbnBits_16(BNWORD16 const *num, unsigned len);
|
|
#endif
|
|
|
|
#ifndef lbnExtractBigBytes_16
|
|
void lbnExtractBigBytes_16(BNWORD16 const *bn, unsigned char *buf,
|
|
unsigned lsbyte, unsigned buflen);
|
|
#endif
|
|
#ifndef lbnInsertBigytes_16
|
|
void lbnInsertBigBytes_16(BNWORD16 *n, unsigned char const *buf,
|
|
unsigned lsbyte, unsigned buflen);
|
|
#endif
|
|
#ifndef lbnExtractLittleBytes_16
|
|
void lbnExtractLittleBytes_16(BNWORD16 const *bn, unsigned char *buf,
|
|
unsigned lsbyte, unsigned buflen);
|
|
#endif
|
|
#ifndef lbnInsertLittleBytes_16
|
|
void lbnInsertLittleBytes_16(BNWORD16 *n, unsigned char const *buf,
|
|
unsigned lsbyte, unsigned buflen);
|
|
#endif
|
|
|
|
#ifndef lbnDiv21_16
|
|
BNWORD16 lbnDiv21_16(BNWORD16 *q, BNWORD16 nh, BNWORD16 nl, BNWORD16 d);
|
|
#endif
|
|
#ifndef lbnDiv1_16
|
|
BNWORD16 lbnDiv1_16(BNWORD16 *q, BNWORD16 *rem,
|
|
BNWORD16 const *n, unsigned len, BNWORD16 d);
|
|
#endif
|
|
#ifndef lbnModQ_16
|
|
unsigned lbnModQ_16(BNWORD16 const *n, unsigned len, unsigned d);
|
|
#endif
|
|
#ifndef lbnDiv_16
|
|
BNWORD16
|
|
lbnDiv_16(BNWORD16 *q, BNWORD16 *n, unsigned nlen, BNWORD16 *d, unsigned dlen);
|
|
#endif
|
|
|
|
#ifndef lbnMontInv1_16
|
|
BNWORD16 lbnMontInv1_16(BNWORD16 const x);
|
|
#endif
|
|
#ifndef lbnMontReduce_16
|
|
void lbnMontReduce_16(BNWORD16 *n, BNWORD16 const *mod, unsigned const mlen,
|
|
BNWORD16 inv);
|
|
#endif
|
|
#ifndef lbnToMont_16
|
|
void lbnToMont_16(BNWORD16 *n, unsigned nlen, BNWORD16 *mod, unsigned mlen);
|
|
#endif
|
|
#ifndef lbnFromMont_16
|
|
void lbnFromMont_16(BNWORD16 *n, BNWORD16 *mod, unsigned len);
|
|
#endif
|
|
|
|
#ifndef lbnExpMod_16
|
|
int lbnExpMod_16(BNWORD16 *result, BNWORD16 const *n, unsigned nlen,
|
|
BNWORD16 const *exp, unsigned elen, BNWORD16 *mod, unsigned mlen);
|
|
#endif
|
|
#ifndef lbnDoubleExpMod_16
|
|
int lbnDoubleExpMod_16(BNWORD16 *result,
|
|
BNWORD16 const *n1, unsigned n1len, BNWORD16 const *e1, unsigned e1len,
|
|
BNWORD16 const *n2, unsigned n2len, BNWORD16 const *e2, unsigned e2len,
|
|
BNWORD16 *mod, unsigned mlen);
|
|
#endif
|
|
#ifndef lbnTwoExpMod_16
|
|
int lbnTwoExpMod_16(BNWORD16 *n, BNWORD16 const *exp, unsigned elen,
|
|
BNWORD16 *mod, unsigned mlen);
|
|
#endif
|
|
#ifndef lbnGcd_16
|
|
int lbnGcd_16(BNWORD16 *a, unsigned alen, BNWORD16 *b, unsigned blen,
|
|
unsigned *rlen);
|
|
#endif
|
|
#ifndef lbnInv_16
|
|
int lbnInv_16(BNWORD16 *a, unsigned alen, BNWORD16 const *mod, unsigned mlen);
|
|
#endif
|
|
|
|
int lbnBasePrecompBegin_16(BNWORD16 **array, unsigned n, unsigned bits,
|
|
BNWORD16 const *g, unsigned glen, BNWORD16 *mod, unsigned mlen);
|
|
int lbnBasePrecompExp_16(BNWORD16 *result, BNWORD16 const * const *array,
|
|
unsigned bits, BNWORD16 const *exp, unsigned elen,
|
|
BNWORD16 const *mod, unsigned mlen);
|
|
int lbnDoubleBasePrecompExp_16(BNWORD16 *result, unsigned bits,
|
|
BNWORD16 const * const *array1, BNWORD16 const *exp1, unsigned elen1,
|
|
BNWORD16 const * const *array2, BNWORD16 const *exp2,
|
|
unsigned elen2, BNWORD16 const *mod, unsigned mlen);
|
|
|
|
#endif /* LBN16_H */
|