bn16.h
上传用户:zbbssh
上传日期:2007-01-08
资源大小:196k
文件大小:2k
源码类别:

CA认证

开发平台:

C/C++

  1. /*
  2.  * bn16.h - interface to 16-bit bignum routines.
  3.  */
  4. struct BigNum;
  5. void bnInit_16(void);
  6. void bnEnd_16(struct BigNum *bn);
  7. int bnPrealloc_16(struct BigNum *bn, unsigned bits);
  8. int bnCopy_16(struct BigNum *dest, struct BigNum const *src);
  9. int bnSwap_16(struct BigNum *a, struct BigNum *b);
  10. void bnNorm_16(struct BigNum *bn);
  11. void bnExtractBigBytes_16(struct BigNum const *bn, unsigned char *dest,
  12. unsigned lsbyte, unsigned dlen);
  13. int bnInsertBigBytes_16(struct BigNum *bn, unsigned char const *src,
  14. unsigned lsbyte, unsigned len);
  15. void bnExtractLittleBytes_16(struct BigNum const *bn, unsigned char *dest,
  16. unsigned lsbyte, unsigned dlen);
  17. int bnInsertLittleBytes_16(struct BigNum *bn, unsigned char const *src,
  18. unsigned lsbyte, unsigned len);
  19. unsigned bnLSWord_16(struct BigNum const *src);
  20. unsigned bnBits_16(struct BigNum const *src);
  21. int bnAdd_16(struct BigNum *dest, struct BigNum const *src);
  22. int bnSub_16(struct BigNum *dest, struct BigNum const *src);
  23. int bnSetQ_16(struct BigNum *dest, unsigned src);
  24. int bnAddQ_16(struct BigNum *dest, unsigned src);
  25. int bnSubQ_16(struct BigNum *dest, unsigned src);
  26. int bnCmp_16(struct BigNum const *a, struct BigNum const *b);
  27. int bnSquare_16(struct BigNum *dest, struct BigNum const *src);
  28. int bnMul_16(struct BigNum *dest, struct BigNum const *a,
  29. struct BigNum const *b);
  30. int bnMulQ_16(struct BigNum *dest, struct BigNum const *a, unsigned b);
  31. int bnDivMod_16(struct BigNum *q, struct BigNum *r, struct BigNum const *n,
  32. struct BigNum const *d);
  33. int bnMod_16(struct BigNum *dest, struct BigNum const *src,
  34. struct BigNum const *d);
  35. unsigned bnModQ_16(struct BigNum const *src, unsigned d);
  36. int bnExpMod_16(struct BigNum *dest, struct BigNum const *n,
  37. struct BigNum const *exp, struct BigNum const *mod);
  38. int bnDoubleExpMod_16(struct BigNum *dest,
  39. struct BigNum const *n1, struct BigNum const *e1,
  40. struct BigNum const *n2, struct BigNum const *e2,
  41. struct BigNum const *mod);
  42. int bnTwoExpMod_16(struct BigNum *n, struct BigNum const *exp,
  43. struct BigNum const *mod);
  44. int bnGcd_16(struct BigNum *dest, struct BigNum const *a,
  45. struct BigNum const *b);
  46. int bnInv_16(struct BigNum *dest, struct BigNum const *src,
  47. struct BigNum const *mod);
  48. int bnLShift_16(struct BigNum *dest, unsigned amt);
  49. void bnRShift_16(struct BigNum *dest, unsigned amt);
  50. unsigned bnMakeOdd_16(struct BigNum *n);